当前位置: 首页 > 面试题库 >

MySQL DELIMITER语法错误

葛景龙
2023-03-14
问题内容

这个MySQL脚本会安装多个触发器。

它在一台运行MySQL 5.0.51b-community的机器上工作。在另一台运行MySQL 14.12 Distrib
5.0.45的计算机上,对于redhat-linux-gnu(i386),它会失败,并显示此错误消息,这似乎与DELIMITER // ... // DELIMITER; 有关;句法 :

第272行的错误1064(42000):您的SQL语法有错误;
查看与您的MySQL服务器版本相对应的手册,以在’DELIMITER附近使用正确的语法;如果存在触发器则触发触发器; 第1行的“
DELIMITER”

脚本语法(概述)为:

DROP TRIGGER IF EXISTS trigger_name;
DELIMITER //
CREATE TRIGGER trigger_name BEFORE UPDATE ON table
FOR EACH ROW BEGIN
  -- Trigger logic goes here
END //
DELIMITER;

-- More trigger drop/create statements follow

脚本出了什么问题,我该如何纠正?


问题答案:

尝试

DELIMITER ;

DELIMITER;

您实际上是;DELIMITER命令指定为参数,因此如果没有空格,可能会造成混淆。



 类似资料:
  • 问题内容: 我在遵循MySQL语法指南时遇到语法错误。 我的查询是: 从逻辑上讲,这应该选择,但是我得到了 问题答案: 您的查询仅在存储过程/函数上下文中有效。参见那里以供参考。

  • 问题内容: 我最近在Java PreparedStatements中遇到了此问题。我有以下代码: 方法在哪里 但是,它总是抛出此错误: 当我以幼稚的方式执行“ …”时,不会发生此问题,但我希望以此方式进行。 任何帮助深表感谢。 更新 我尝试了社区的各种建议,例如 仍然出现错误信息。 问题答案: 解决问题的方法实际上非常简单,当您要调用PreparedStatement.executeQuery()

  • 我正在为我的数据库使用Sequelize(6.3.0)和sqlite3(4.2.0),并试图定义以下模型: 它应该在进程启动时定义,但我得到以下错误: 当然,每当我试图对此表执行任何操作时,都会出现以下错误: 我猜问题来自使用数组数据类型的“参与”和“赢家”行。 谢谢你的帮助

  • 问题内容: 我目前在我的Web应用程序中使用jQuery,Twitter Bootstrap和AngularJS。我一直在尝试进行路由,但是`Syntax error, unrecognized expression: 我需要在我的AngularJS路由中使用斜杠(即,并将在我的div中加载不同的内容)。可能是什么原因导致此错误? 问题答案: 我猜在指定目标时要多加斜杠。删除它们,它应该可以正常工

  • 我最近在Java PreparedStatements中遇到了这个问题。我有以下代码: 其中方法是 但是,它一直抛出这个错误: 当我以幼稚的方式做“...

  • 目前遇到此语法错误,错误发布在代码下方。 上面的代码,无法找出if语句上的语法错误。错误消息将很快粘贴为注释

  • 问题内容: 为什么Python在第9行的简单语句中给我一个语法错误? Python的版本是: 问题答案: 在Python 3中,print是一个函数,您需要像这样调用它。

  • 问题内容: 我正在尝试在Go中执行MERGE语句: 但是我得到了这个错误: 在MySQL中也是如此: 怎么了? 问题答案: 不支持,等效的是 插入…在重复的密钥更新上 尝试这个, 但请确保将其设置为或。