2015-06-21 39 views
0

每當我試着運行這個功能,我得到了以下錯誤消息:如何去除#1064 - 你有一個錯誤在您的SQL語法錯誤在MySQL

#1064 - 你有一個錯誤的SQL語法;檢查對應於你的MySQL服務器版本使用附近的「END」第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 ; 

回答

2

移動end;後,收到了正確的語法手冊。

由於您將分隔符從;更改爲$$,分號不再是分隔符(在函數定義之外)。

只是一個特殊字符和DB引擎不知道怎麼用它做什麼,並拋出一個錯誤。您需要將它放在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 ; 
相關問題