【问题标题】:MySQL - Insert row into table 2 for each updated row in table 1MySQL - 为表 1 中的每个更新行将行插入表 2
【发布时间】:2016-05-03 00:59:22
【问题描述】:

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

如果能帮我触发触发器工作,我将不胜感激,谢谢!

【问题讨论】:

    标签: mysql sql triggers


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多