我有一个如下所示的 table_1
:
serial myBool dateTime
------ ------ --------
1 0 2016-05-03 10:23:45
2 1 2016-05-03 09:13:21
3 0 2016-05-03 08:44:33
MySQL 计划事件定期运行,如果 dateTime 足够旧,它会将 myBool
设置为 0。到目前为止一切顺利。
每次 myBool
设置为 0 时,我希望向 table_2
添加一个新行,如下所示:
table_1_serial dateTime
-------------- --------
2 2016-05-03 09:13:21
我因此创建了一个触发器:
CREATE TRIGGER `myTrigger` AFTER UPDATE ON `table_1`
FOR EACH ROW
IF myBool = 0 THEN INSERT INTO `table_2` VALUES(`serial`, `dateTime`);
END IF
但是现在当我修改 table_1
行时,我收到以下消息:
Unknown column 'myBool' in 'field list'
如果您能帮助我让触发器正常工作,我将不胜感激,谢谢!
最佳答案
尝试使用 new.
作为列引用:
CREATE TRIGGER `myTrigger` AFTER UPDATE ON `table_1`
FOR EACH ROW
IF new.myBool = 0 THEN
INSERT INTO `table_2`
VALUES(new.`serial`, new.`dateTime`);
END IF;
关于MySQL - 将表 1 中每个更新的行插入表 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993980/