gpt4 book ai didi

mysql - #1064 - 您的 SQL 语法在 '' 附近有错误

转载 作者:行者123 更新时间:2023-11-29 06:39:04 24 4
gpt4 key购买 nike

我复制了一个生成的存储过程。

重新运行后,我得到 You have an error in your SQL syntax near '' at line 11.

CREATE DEFINER=`root`@`%` PROCEDURE `usp_TEST`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Returns the total number of available vehicles'
BEGIN
SELECT COUNT(*) AS Total
FROM FLEET
WHERE RENTED = 0
AND InService = 1;
END

添加定界符//并以定界符结尾;没有帮助。没有错误,但也没有创建存储过程。欢迎任何帮助......

最佳答案

正如您已经猜到的那样,为了让您的 MySQL 客户端 不将终止 SELECT 语句的 ; 解释为结束CREATE PROCEDURE 语句,您必须通知它您希望使用其他语句分隔符。

mysql命令行客户端,您可以使用 DELIMITER command 执行此操作.例如,要将语句分隔符更改为双正斜杠:

DELIMITER //

如果使用其他一些客户端软件,您将必须检查其文档以发现更改语句分隔符的适当方法。

完成后,您可以执行以下操作:

CREATE DEFINER='root'@'%' PROCEDURE usp_TEST()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Returns the total number of available vehicles'
BEGIN
SELECT COUNT(*) AS Total
FROM FLEET
WHERE RENTED = 0
AND InService = 1;
END//

但是,因为在这种情况下您的过程只包含一个语句,所以您不需要使用 BEGIN ... END compound statement block因此可以避免完全更改分隔符:

CREATE DEFINER='root'@'%' PROCEDURE usp_TEST()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Returns the total number of available vehicles'
SELECT COUNT(*) AS Total
FROM FLEET
WHERE RENTED = 0
AND InService = 1;

关于mysql - #1064 - 您的 SQL 语法在 '' 附近有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com