如何解決MySQL錯誤“You have an error in your SQL syntax; check the manual\nthat corresponds to your MySQL server version for the right syntax to use near?”


為了避免在MySQL儲存過程中出現此類錯誤,您需要將分隔符;更改為//。

假設您正在使用儲存過程或觸發器甚至函式,則需要更改分隔符。語法如下。

DELIMITER //
   CREATE PROCEDURE yourProcedureName()
   BEGIN
      Statement1,
      .
      .
   N
END;
//
DELIMITER ;

為了理解上述語法,讓我們建立一個儲存過程。建立儲存過程的查詢如下 -

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_getAllRecords()
-> BEGIN
-> SELECT *FROM employeetable;
-> END;
-> //
Query OK, 0 rows affected (0.23 sec)
mysql> DELIMITER ;

使用CALL命令呼叫儲存過程。語法如下。

CALL yourStoredProcedureName();

現在呼叫上面返回Employee表所有記錄的儲存過程。查詢如下。

mysql> CALL sp_getAllRecords();

以下是輸出。

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 2 | Bob | 1000 |
| 3 | Carol | 2500 |
+------------+--------------+----------------+
2 rows in set (0.00 sec)
Query OK, 0 rows affected (0.02 sec)

更新於: 2019-07-30

4K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.