无法在MySQL语法错误中运行查询

jp2code

我正在运行Workbench 5.2.47。

我用基本数据检查编写的过程很长。如果数据库中不存在记录,则将插入该记录。

该过程保存完好,但是当我尝试运行它时,MySQL 5.5引发了错误。

它很长,并且其中包含许多公司敏感数据,或者我将其发布在此处。

我试图通过执行一小段代码来调试过程,但是似乎无法让Workbench允许我尝试的任何事情。

MySQL在5.1.5使用存储过程中展示了如何创建存储过程

让我向您展示一些我想写的非常基本的东西:

DELIMITER $$
DROP PROCEDURE IF EXISTS my_test;

CREATE PROCEDURE my_test()
BEGIN
    SELECT * FROM Employees;
END $$

DELIMITER ;

这样,Workbench给了我错误,“语法错误,意外的创建,期望$ end”。

屏幕截图CREATE

我不明白,但是我需要完成一些工作,所以我继续前进。

我进行一个简单的查询:

SET @Count=(SELECT Count(*) FROM tbl_object_users WHERE username='jp2code');
IF (@Count < 1) THEN
    INSERT INTO tbl_object_users (username, date_time) VALUES ('jp2code', NOW());
END IF;

再次,我在我的IF语句上遇到错误。

屏幕截图IF

接下来,我进入PhpMyAdmin尝试使用其数据库从那里运行一些东西:

SET @Count=Count(id) FROM `tbl_object_users` WHERE `username`='jp2code';

它也告诉我我的SQL语法有错误。

屏幕截图phpMyAdmin

我确实下载并安装了最新的Workbench 6,但并不能解决问题-我不喜欢该界面,因此我将其卸载并返回到Workbench 5.2。

到底是怎么回事?SQL并不难,那么这些障碍又是什么?

spencer7593

问题:

DELIMITER $$
DROP PROCEDURE IF EXISTS my_test;
CREATE PROCEDURE my_test() ...

是MySQL没有在DROP PROCEDURE语句行的末尾看到分号作为语句的结尾。这是因为前一行告诉MySQL,语句终止符不是分号。您告诉MySQL,语句将以两个美元符号终止。因此,MySQL正在阅读这一DROP PROCEDURE行,寻找语句终止符。而且它读取的整个Blob不是有效的MySQL语句,它会生成语法错误。

的修复:要么移动DROP PROCEDURE线之前DELIMITER $$线; DROP PROCEDURE使用指定的定界符而不是分号来终止语句。


您报告的第二个问题是语法错误。发生这种情况是因为MySQL无法将其识别IF为有效SQL语句的开始。

IF语句在MySQL存储程序的上下文中有效(例如,在一条CREATE PROCEDURE语句中)。

解决方法:IF仅在MySQL存储程序的上下文中使用语句。


您报告的第三个问题也是语法错误。发生这种情况是因为您没有有效的SET语句语法用于SET为用户变量分配值的语句的MySQL语法为

SET @uservar = expr 

MySQL期待等号后的表达式MySQL不需要SQL语句。

要将值作为SELECT语句的结果分配给用户变量,请在SELECT语句中进行分配,例如:

SELECT @Count := Count(id) FROM `tbl_object_users` WHERE `username`='jp2code'

请注意,SELECT语句中的赋值运算符:=(冒号等于),而不仅仅是=

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在MySQL语法错误中运行查询意外

来自分类Dev

子查询中的MySQL语法错误

来自分类Dev

MySql中的查询语法错误

来自分类Dev

连接查询中的mysql语法错误

来自分类Dev

MySQL Join查询中的语法错误

来自分类Dev

mysql查询中的语法错误

来自分类Dev

mysql更新查询中的语法错误我的语法是正确的

来自分类Dev

MySQL查询语法错误

来自分类Dev

在节点MySQL中报告SQL语法错误,在Sequel Pro中查询运行正常

来自分类Dev

无法在ggsunburst中运行基本命令。语法错误

来自分类Dev

PHP和MySQL中的INSERT查询语法错误

来自分类Dev

MySQL 5中的查询语法错误过程?

来自分类Dev

数据库查询中的MYSQL语法错误

来自分类Dev

mySQL 查询中的语法错误是什么?

来自分类Dev

MySQL错误.SQL查询语法错误

来自分类Dev

MySQL错误.SQL查询语法错误

来自分类Dev

从 MySql 运行选择查询时,如何修复 PHP 中的“解析错误:语法错误,意外的‘回声’(T_ECHO)”

来自分类Dev

编译/语法错误:运行时错误3075:查询表达式中的语法错误

来自分类Dev

MySQL PDO查询语法错误?参数

来自分类Dev

如何修复MySQL查询语法错误

来自分类Dev

wpdb查询/准备的MySQL语法错误

来自分类Dev

MySQL查询-奇怪的语法错误

来自分类Dev

AWS mysql 多查询语法错误

来自分类Dev

MS Access查询中的语法错误?

来自分类Dev

PHP中的SQL查询语法错误

来自分类Dev

MS Access查询中的语法错误?

来自分类Dev

PHP中的SQL查询语法错误

来自分类Dev

sybase查询中的语法错误

来自分类Dev

SQL查询中AND的语法错误