【问题标题】:Mysql create trigger throws errorMysql创建触发器抛出错误
【发布时间】:2015-08-30 13:40:33
【问题描述】:

我尝试为每个新帖子创建触发器 这是我的代码

CREATE TRIGGER insertprod AFTER INSERT ON post
FOR EACH ROW
BEGIN
  INSERT INTO attributes SET attrtext = 'sometext', post_id = NEW.id;
END;

我收到了这个错误

【问题讨论】:

    标签: mysql database triggers insert


    【解决方案1】:

    你可能只需要一个分隔符:

    DELIMITER $$
    CREATE TRIGGER insertprod AFTER INSERT ON post
    FOR EACH ROW
    BEGIN
      INSERT INTO attributes SET attrtext = 'sometext', post_id = NEW.id;
    END;
    $$
    DELIMITER ;
    

    但是,您还使用了INSERT 的非标准形式。我建议:

    DELIMITER $$
    CREATE TRIGGER insertprod AFTER INSERT ON post
    FOR EACH ROW
    BEGIN
      INSERT INTO attributes(attrtext, post_id)
         VALUES('sometext', NEW.id);
    END;
    $$
    DELIMITER ;
    

    【讨论】:

      【解决方案2】:

      解析器被; 混淆了,它终止了触发器的BEGIN...END 块内的语句。您需要使用DELIMITER 语句来定义一个新的分隔符,然后您可以使用它来结束CREATE TRIGGER 语句。

      【讨论】:

        【解决方案3】:

        您的 INSERT 命令是错误的。应该是的

         INSERT INTO attributes (attrtext, post_id) VALUES ('sometext', NEW.id);
        

        【讨论】:

          猜你喜欢
          • 2016-02-16
          • 2013-07-16
          • 2014-01-24
          • 1970-01-01
          • 2017-02-09
          • 1970-01-01
          • 1970-01-01
          • 2021-03-05
          • 2012-04-27
          相关资源
          最近更新 更多