mysql触发更新nex列:语法错误

时间:2017-03-01 23:05:49

标签: mysql mariadb

我想创建此触发器为clomn设置默认值,但是我收到此消息错误:#1064 - 您的SQL语法出错;查看与您的MariaDB服务器版本对应的手册,以便在第4行附近使用正确的语法

这是我的剧本:

CREATE TRIGGER trg_set_content_val BEFORE INSERT
    ON post_table
    FOR EACH ROW BEGIN
        set NEW.content = 'mu value here';
END;

1 个答案:

答案 0 :(得分:2)

您需要在存储的程序之前将delimiter设置为除分号之外的其他内容,然后将其更改回来:

DELIMITER //
CREATE TRIGGER trg_set_content_val 

BEFORE INSERT
    ON post_table
    FOR EACH ROW BEGIN
        set NEW.content = 'mu value here';
END//
DELIMITER ;

原因:

  

如果使用mysql客户端程序来定义存储的程序   包含分号字符,出现问题。默认情况下,mysql   它本身将分号识别为语句分隔符,因此您必须这样做   暂时重新定义分隔符以使mysql传递整个分隔符   存储的程序定义到服务器。

     

要重新定义mysql分隔符,请使用delimiter命令。该   以下示例显示了如何为dorepeat()过程执行此操作   刚刚显示。分隔符更改为//以启用整个分隔符   定义要作为单个语句传递给服务器,然后   恢复到;在调用该过程之前。这使得;   在程序体中使用的分隔符将被传递给   服务器,而不是由mysql本身解释。