【发布时间】:2020-01-08 12:52:41
【问题描述】:
我想将table1中的数据自动复制到table2。例如:在table1中写入数据时,table2应该在table1中写入相同的数据行。需要自动复制的列名:id,abc
触发器怎么办?
编辑:这是我已经尝试过的
DELIMITER //
CREATE TRIGGER table2 AFTER UPDATE ON table1
FOR EACH ROW BEGIN
INSERT INTO table select * from table1 where id = NEW.id;
END;//
DELIMITER ;
它给了我一个错误
MySQL 说:#1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“// CREATE TRIGGER table2 AFTER UPDATE ON table1 FOR EACH ROW BEGIN INSE”附近使用正确的语法
【问题讨论】:
-
INSERT INTO table - 这是一个拼写错误(table 是保留字)应该是 INSERT INTO table2 吗?你应该插入 NEW.values 而不是选择。
-
您想要
AFTER UPDATE触发器还是ATER INSERT? -
除了保留字之外,这段代码的语法对我来说很好。您使用的是什么 UI 工具?
-
另外你不应该给你的触发器和表同名 (
table2)。 -
请不要dekete然后重新发布相同的问题!此外,mysql 似乎您在 // 之前遇到了问题。检查那里是否有任何不可见的非打印字符。