MySQL - 为表1中的每个更新行插入表2中的行

时间:2016-05-03 00:59:23

标签: mysql sql triggers

我的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'

感谢任何让触发器工作的帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用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;