无法解释的MySQL错误#1064,字符串为空,更新触发后创建?

时间:2018-08-29 19:23:10

标签: mysql phpmyadmin xampp mariadb

我在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

有效。

有人可以帮我看看怎么了吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

您需要使用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 ;