如何在触发器INSERT AFTER mysql中执行程序?

时间:2014-10-20 21:06:36

标签: mysql sql

我在这里发现了很多问题,例如: Execute procedure in a trigger

但是不能在这里发表评论以指明一些时刻。

我在phpmyadmin中触发 INSERT AFTER ,我写道:

...

BEGIN
insert_log(1, :new.idArticle, :new.ArticleName, :new.ArticleTime, :new.ArticleCategory, :new.ArticleToUserID);
END
...

我收到错误:

  

MySQL:#1064 - 您的SQL语法出错;检查   手册,对应右边的MySQL服务器版本   要使用的语法'(1,:new.idArticle,:new.ArticleName,   :new.ArticleTime,:new.ArticleCategory,:n'在第2行

你能告诉我什么是错的吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

CREATE TRIGGER your_trigger
AFTER INSERT
    ON table_name FOR EACH ROW
BEGIN
      insert_log(1, NEW.idArticle,  NEW.ArticleName, NEW.ArticleTime,  NEW.ArticleCategory,     NEW.ArticleToUserID);
END;

另请注意,MySQL的文档页面标题为“Trigger Syntax and Examples”声明:

 Within the trigger body, the OLD and NEW keywords enable you to access columns 
 in the rows affected by a trigger. OLD and NEW are MySQL extensions to triggers; 
 they are not case sensitive.

如果您有任何疑问,请与我们联系!