繁体   English   中英

在MySQL触发器中将整个表从一个表复制到另一个表

[英]Copy entire row from one table to another in MYSQL trigger

我有两个具有相同架构的表,我想在触发器中将新插入的记录从table1复制到table2,我的代码在下面并且可以工作,但是只复制id字段

BEGIN
   insert into Table2 (id) values (new.id);
END

但是表中有很多列,有一种方法可以将整个记录复制到table2中,而无需指定所有列和值,如下所示

BEGIN
   insert into Table2 SELECT * FROM NEW;
END

谢谢

您的第二个SQL很好,但是您必须先执行一次查询才能在选择中使用星号到:

SET IDENTITY_INSERT NEW ON

接着 :

BEGIN
   insert into Table2 SELECT * FROM NEW;
END

并且不要忘记最后将其关闭

编辑1

如果它不起作用,也许尝试在sql上设置一些优先级:

INSERT INTO `Table2` (SELECT * FROM `NEW`);

编辑2

如果仍然无法使用,也许您可​​以尝试直接使用所有元素创建表:

CREATE TABLE Table2 [AS] SELECT * FROM NEW;

这有效

  insert into Table2 SELECT * FROM Table1 where id=new.id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM