我想创建此触发器为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;
答案 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本身解释。