无法解释的mysql错误#1064在创建更新后触发器时出现空字符串?

a64a0gku  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(380)

我在windows 8.1机器上运行mysql,服务器版本为:10.1.34-mariadb(分布在xampp 7.2.7-0-vc15-installer中),使用google chrome上的phpmyadmin访问mysql数据库,我得到以下错误:

1064-您的sql语法有错误;请检查与您的mariadb服务器版本相对应的手册,以获取第4行“”附近要使用的正确语法

对于此创建触发器语法:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
SET @jns = 1;
END

当我这样修改代码时:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN

END

或者像这样:

DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate;
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
-- SET @jns = 1;
END

成功了。
有人能帮我指出哪里不对吗?谢谢您。

js81xvg6

js81xvg61#

你需要使用 DELIMITER 指令更改查询分隔符,以便您可以使用 ; 在触发器定义中。

DELIMITER $$
DROP TRIGGER IF EXISTS Tsopd_main_AfterUpdate$$
CREATE TRIGGER Tsopd_main_AfterUpdate AFTER UPDATE
ON sopd_main FOR EACH ROW 
BEGIN
SET @jns = 1;
END$$
DELIMITER ;

相关问题