每当我尝试运行此函数时,都会收到以下错误消息:
#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 'END' at line 10
DROP FUNCTION IF EXISTS regNum;
DELIMITER $$
CREATE FUNCTION regNum(i INT)
RETURNS CHAR(5)
BEGIN
RETURN CONCAT(
CHAR(i / 26000 % 26 + 65),
CHAR(i / 1000 % 26 + 65),
CHAR(i / 100 % 10 + 48),
CHAR(i / 10 % 10 + 48),
CHAR(i % 10 + 48))
END;
$$
DELIMITER ;
最佳答案
将 ;
移到 end
之后、之前。
由于您将分隔符从 ;
更改为 $$
,分号不再是分隔符(在函数定义之外)。
只是一个特殊字符,数据库引擎不知道如何处理它并抛出错误。您需要将其放在 return
语句的末尾以结束函数内的语句。
DROP FUNCTION IF EXISTS regNum;
DELIMITER $$
CREATE FUNCTION regNum(i INT)
RETURNS CHAR(5)
BEGIN
RETURN CONCAT(
CHAR(i / 26000 % 26 + 65),
CHAR(i / 1000 % 26 + 65),
CHAR(i / 100 % 10 + 48),
CHAR(i / 10 % 10 + 48),
CHAR(i % 10 + 48));
END
$$
DELIMITER ;
关于mysql - 如何删除 #1064 - mysql 中的 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964288/