如何解决MySQL错误“You have an error in your SQL syntax; check the manual\nthat corresponds to your MySQL server version for the right syntax to use near?”


为了避免在MySQL存储过程中出现此类错误,您需要将分隔符;更改为//。

假设您正在使用存储过程或触发器甚至函数,则需要更改分隔符。语法如下。

DELIMITER //
   CREATE PROCEDURE yourProcedureName()
   BEGIN
      Statement1,
      .
      .
   N
END;
//
DELIMITER ;

为了理解上述语法,让我们创建一个存储过程。创建存储过程的查询如下 -

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_getAllRecords()
-> BEGIN
-> SELECT *FROM employeetable;
-> END;
-> //
Query OK, 0 rows affected (0.23 sec)
mysql> DELIMITER ;

使用CALL命令调用存储过程。语法如下。

CALL yourStoredProcedureName();

现在调用上面返回Employee表所有记录的存储过程。查询如下。

mysql> CALL sp_getAllRecords();

以下是输出。

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 2 | Bob | 1000 |
| 3 | Carol | 2500 |
+------------+--------------+----------------+
2 rows in set (0.00 sec)
Query OK, 0 rows affected (0.02 sec)

更新于: 2019-07-30

4K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告