You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:16:59