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

创建MariaDB触发器遇SQL Error [1064] [42000],求解决方案

解决MariaDB触发器创建时的1064语法错误

这个错误的核心原因是MySQL/MariaDB默认使用分号(;)作为语句结束符,而你的触发器内部包含多个分号,数据库会在第一个分号处就认为整个CREATE TRIGGER语句结束,导致后续语法解析失败。

解决方法是临时修改语句分隔符,具体步骤如下:

  • 先设置临时分隔符(比如//),告知数据库用该符号作为整个语句的结束标记
  • 编写完整的触发器代码
  • 用临时分隔符结束触发器定义
  • 恢复默认的分号分隔符

修改后的完整SQL代码:

DELIMITER //
create trigger bi_validate_users
before insert on users
for each row 
begin
    if new.user = '' then 
        signal sqlstate '45000' set message_text = 'User must not be blank';
    end if;
    if new.password = '' then 
        signal sqlstate '45000' set message_text = 'Password must not be blank';
    end if;
end //
DELIMITER ;

额外说明:

  • 临时分隔符可选用除分号外的任意符号(比如$$也较为常用),只要不与代码内部的符号冲突即可
  • 触发器定义完成后务必恢复默认分隔符,避免后续执行SQL语句时出现异常

内容的提问来源于stack exchange,提问作者KplnMoon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:04:49