2017-09-04 98 views
0

我試圖創建一個存儲過程,但每次我嘗試運行代碼時會引發我一個錯誤:MySQL的:存儲過程的錯誤

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的在線使用近「」正確的語法10

這是存儲過程手動我試圖創建:

CREATE DEFINER=`root`@`localhost` PROCEDURE getMantencionByPlate(
    xParam char(10), 
    xParam2 char(10) 
) 
BEGIN 
    SELECT DISTINCT 
     * 
    FROM mantenciones 
    WHERE ifnull(estado,'')<>'ELIMINADO' and brainbox=xParam and patente=xParam2 
    ORDER BY fecing desc; 

END 
DELIMITER ; 
+2

缺省的分隔符爲';',ORDER後'您的代碼結束BY fecing desc'和[複合語句](https://dev.mysql.com/ doc/refman/5.7/en/sql-syntax-compound-statements.html)是我的ncomplete。 https://dev.mysql.com/doc/refman/5.7/en/stored-programs-defining.html – axiac

+0

謝謝,通過在開頭添加** DELIMITER ;; **和** END ;; **解決它。 –

回答

0

嘗試添加DELIMITER $$在查詢的頂部,這樣的:

DELIMITER $$ 

CREATE DEFINER=`root`@`localhost` PROCEDURE getMantencionByPlate(
    xParam char(10), 
    xParam2 char(10) 
) 
BEGIN 
    SELECT DISTINCT 
     * 
    FROM mantenciones 
    WHERE ifnull(estado,'')<>'ELIMINADO' and brainbox=xParam and patente=xParam2 
    ORDER BY fecing desc; 

END $$ 
DELIMITER ;