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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空字符串无法解释的MySQL错误#1064创建更新触发器后?相关的知识,希望对你有一定的参考价值。

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

有效。

任何人都可以帮我告诉我什么是错的?谢谢。

答案

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

以上是关于空字符串无法解释的MySQL错误#1064创建更新触发器后?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL建表1064错误?

如何将 MySQL DATETIME 更新为 NOW()? (错误 1064)

Python mysql.connector 更新错误代码1064

MYSQL中 ENUM 类型的详细解释

无法更新root Mysql密码

mysql error (#1064) 存储过程创建错误