Ubuntu环境下MySQL 8.0用DELIMITER创建触发器报语法错误求助
MySQL 8.0触发器创建语法错误排查
你的问题出在DELIMITER命令的使用方式上:DELIMITER语句必须单独占用一行,不能和CREATE TRIGGER写在同一行。MySQL解析器会把DELIMITER $$ CREATE TRIGGER...当成一条语句处理,这不符合语法规范。
修正后的完整SQL代码如下:
DROP TRIGGER IF EXISTS trigger1; DELIMITER $$ CREATE TRIGGER trigger1 BEFORE INSERT ON whatsapps FOR EACH ROW BEGIN SELECT COUNT(*) INTO @cnt FROM whatsapps; IF @cnt >= 2 THEN CALL sth(); END IF; END $$ DELIMITER ;
额外提醒:触发器中调用的sth()存储过程需要提前创建好,否则执行时会触发新的错误。
内容的提问来源于stack exchange,提问作者Ricardo G.
相关产品推荐
相关产品推荐

