MySQL触发器语法错误求助:Error Code 1064问题排查
解决MySQL触发器1064语法错误(END附近)
错误原因
- 触发器体内部的
INSERT语句末尾未添加分号,MySQL要求每个SQL语句必须以分号结尾,缺少分号导致解析器无法识别语句边界,报错位置指向END。 - 未临时修改语句分隔符:MySQL默认以
;作为语句结束标记,触发器定义中包含分号时,会被提前判定为整个CREATE TRIGGER语句结束,导致语法错误。
修正后的代码
DELIMITER // CREATE TRIGGER insert_adm AFTER INSERT ON table_student FOR EACH ROW BEGIN INSERT INTO Admission(ID_Student, registration_date) VALUES (new.ID_Student, CURDATE()); END // DELIMITER ;
说明
DELIMITER //:临时将语句分隔符改为//,避免触发器内部的分号干扰整个语句的解析。- 在
INSERT语句末尾添加分号,符合MySQL语法规范。 - 触发器定义结束后用
//标记,最后通过DELIMITER ;将分隔符改回默认的分号。
内容的提问来源于stack exchange,提问作者Mishchenko Illia
相关产品推荐
相关产品推荐

