我有一个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;

10-07 23:59