我有两个具有相同模式的表,我想在触发器中将新插入的记录从table1复制到table2,我的代码在下面并且有效,但只复制id字段
BEGIN
insert into Table2 (id) values (new.id);
END
然而表中有很多列,是否有办法将整个记录复制到table2中而不指定所有列和值,如下所示
BEGIN
insert into Table2 SELECT * FROM NEW;
END
由于
答案 0 :(得分:0)
你的第二个SQL很好,但是你必须首先进行一个查询才能使用select into中的星号:
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;
答案 1 :(得分:0)
这有效
gql('my query')