是否可以触发新行的所有列的插入?基本上,我想在另一个表中复制新插入的记录,但是必须指定所有列。
像
这样的东西DELIMITER $$
CREATE TRIGGER TestTrigger
AFTER INSERT
ON Table1 FOR EACH ROW
BEGIN
INSERT INTO `Table2` SELECT * FROM NEW;
END$$
DELIMITER ;
但是每当我尝试在Table 'Database.NEW' doesn't exist
中插入新行时,都会返回Table1
。
在触发器主体中,您可以使用别名OLD和NEW来引用主题表(与触发器关联的表)中的列。 OLD.col_name在更新或删除之前引用现有行的列。 NEW.col_name引用要插入的新行的列或更新后的现有行。
答案 0 :(得分:1)
尽管这个问题没有得到解决,但如果你有一个主要密钥,你可以SELECT
使用主键的所有字段。
CREATE TRIGGER replicated_table AFTER INSERT ON source_table FOR EACH ROW
BEGIN
INSERT INTO replicated_table SELECT * FROM source_table WHERE id=NEW.id;
END
此外,也许您可以更喜欢使用REPLACE
而不是INSERT
来确保表格不会超出合并范围。