gpt4 book ai didi

mysql - #1064 错误 SQL - 发生在我的所有过程/函数上

转载 作者:行者123 更新时间:2023-11-29 10:20:16 26 4
gpt4 key购买 nike

我知道这个问题已经以不同的形式被问了很多次,但我看过的(相当多的)问题似乎都不能帮助我解决我的具体情况。我编写了一些函数和过程,但总是在同一位置出现相同的错误。这是我的代码:

DELIMITER |
DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS;
CREATE PROCEDURE STUDENTS_BY_STATUS (sts VARCHAR(10))
BEGIN
SELECT BannerId, Name FROM STUDENT WHERE Status = sts;
END |
DELIMITER;

这发生在我的所有程序函数上,此错误:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

near 'CREATE PROCEDURE STUDENTS_BY_STATUS (sts VARCHAR(10)) BEGIN SELECT BannerId,' at line 2

在我的另一张上是这样的:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use

near 'CREATE FUNCTION GoodGrade(letGrade VARCHAR(2)) RETURNS int BEGIN DECLARE v' at line 2

无论我是否使用|,都会发生这种情况或//作为分隔符...有人可以告诉我我在这里做错了什么吗?谢谢!

最佳答案

您更改了分隔符,编写了一条语句,但没有根据新定义对其进行分隔

换行

DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS;

DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS |

更新

从最初的错误消息来看,这一点并不明显,但是当您在过程定义之后重置分隔符时,会出现另一个错误。 ';' 之前需要一个空格就那个。

所以改变

DELIMITER;

DELIMITER ;

注意';'的另一种用法在您的过程定义中是正确的,因为您希望将 create 语句中的所有内容一起处理。

关于mysql - #1064 错误 SQL - 发生在我的所有过程/函数上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49401760/

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