更新触发器后创建空字符串时出现无法解释的 MySQL 错误 #1064?
Posted
技术标签:
【中文标题】更新触发器后创建空字符串时出现无法解释的 MySQL 错误 #1064?【英文标题】:Unexplainable MySQL Error #1064 for Empty String On creating After Update Trigger? 【发布时间】:2019-02-04 16:08:05 【问题描述】:我在 Windows 8.1 机器上使用服务器版本:10.1.34-MariaDB(在 XAmpp 7.2.7-0-VC15-installer 中分发)运行 mysql,使用 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】:您需要使用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?的主要内容,如果未能解决你的问题,请参考以下文章
在配置单元中发出选择查询时出现异常'java.lang.IllegalArgumentException(无法从空字符串创建路径)'