You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何创建无需指定列的跨表行复制插入触发器?

解决方案

当两张表结构完全一致时,确实可以不用逐个指定列实现行复制,你之前直接用new报错是因为NEW是代表触发事件的行对象,需要用NEW.*来引用该行的所有列值。

修改后的触发器代码如下:

delimiter #
create trigger SomeTriggerName after insert on someTable1
   for each row
   begin
       insert into someTable2 values (NEW.*);
   end#
delimiter ;

注意事项

  • 这种写法依赖两张表的列顺序、列名和数据类型完全匹配,如果后续任意一张表的结构发生变更(比如新增列、调整列顺序),需要同步确保两张表结构一致,否则可能导致数据插入错位或报错。
  • 你也可以用INSERT INTO someTable2 SELECT NEW.*;,和上面的写法效果完全一致,语义上更偏向“选择行数据插入”的逻辑。

内容的提问来源于stack exchange,提问作者zozo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:52:01