MariaDB 10.3.17创建触发器时出现1064语法错误求助
触发器语法错误修复方案
你的触发器代码存在两处语法遗漏,导致MariaDB抛出1064语法错误:
SET new.sync_date = CURRENT_TIMESTAMP语句末尾缺少分号(;)END IF语句末尾缺少分号(;)
MySQL/MariaDB的存储程序(触发器、存储过程等)要求每条完整SQL语句必须以分号结尾,控制结构的闭合语句也不例外。
修正后的完整触发器代码
delimiter | CREATE TRIGGER update_sync_date BEFORE UPDATE ON posts FOR EACH ROW BEGIN IF @disable_sync_date_update IS NULL OR @disable_sync_date_update <> 1 THEN SET new.sync_date = CURRENT_TIMESTAMP; END IF; END| delimiter ;
注:你的变量判断逻辑是合理的——仅当@disable_sync_date_update未定义或不等于1时,才自动更新sync_date字段,这个逻辑可以正常生效。
内容的提问来源于stack exchange,提问作者Alessandro Cerutti
相关产品推荐
相关产品推荐

