在数据库触发器中使用NEW.id时出现错误

时间:2019-04-14 18:57:12

标签: mysql triggers

我正在尝试创建一个用于插入数据的触发器。我想获取要在表中进行插入或更改的作者或用户的当前ID。但是我遇到此错误:

  

新的未知列ID

这是我的查询

INSERT INTO logs VALUES(null,NEW.id,'inserted',NOW());

我的数据库comments表和logs表中有两个表...

有人可以帮助我如何摆脱这个错误...

1 个答案:

答案 0 :(得分:0)

听起来您的评论表中包含这样的列:

columnA

但是触发器中的INSERT语句引用了columnB。您的评论表中没有CREATE TABLE comments ( comment_id ... author ... message ... ); 列。 NEW.id语法是一种访问执行触发器的行的方法。您只能引用该表中存在的列。

因此,由于我猜您的主键列为id,因此应删除触发器并重新创建它以运行INSERT,如下所示:

NEW.*

重点是comment_id必须引用注释表中为其定义触发器的列。