欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql命令行執行函數創建報錯

劉姿婷2年前9瀏覽0評論

最近在使用MySQL命令行執行函數創建時遇到了一些報錯問題,總結一下具體情況如下:

mysql>DELIMITER //
mysql>CREATE FUNCTION myFunc(a INT) RETURNS INT
->BEGIN
->DECLARE b INT;
->SET b = 1;
->RETURN a * b;
->END //
ERROR 1064 (42000): 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 '//\nCREATE FUNCTION myFunc(a INT) RETURNS INT\nBEGIN\nDECLARE b INT;\nSET' at line 1

在執行以上代碼時,會出現"ERROR 1064(42000)"的報錯,這個錯誤信息一般都說明語法有誤,但我們的語法明顯是正確的,因此需要進一步排查問題。

經過多次嘗試后,我們發現這里的問題是DELIMITER命令導致的語法錯誤,因為在DELIMITER命令后面沒有跟著具體的分隔符,最后導致代碼解析時出現錯誤。

因此,我們需要將DELIMITER命令后面設置的分隔符與代碼中使用的分隔符保持一致,這樣才能避免出現以上錯誤。

修改后的正確代碼如下:

mysql>DELIMITER $$
mysql>CREATE FUNCTION myFunc(a INT) RETURNS INT
->BEGIN
->DECLARE b INT;
->SET b = 1;
->RETURN a * b;
->END $$
Query OK, 0 rows affected (0.00 sec)

可以看到,在設置DELIMITER命令后面加上分隔符"$"后,再執行函數創建語句,就能成功創建函數了。