Để tránh loại lỗi này trong thủ tục lưu trữ MySQL, bạn cần thay đổi dấu phân cách; tới //.
Giả sử nếu bạn đang sử dụng thủ tục hoặc trình kích hoạt được lưu trữ hoặc thậm chí hàm thì bạn cần thay đổi dấu phân cách. Cú pháp như sau.
DELIMITER // CREATE PROCEDURE yourProcedureName() BEGIN Statement1, . . N END; // DELIMITER ;
Để hiểu cú pháp trên, chúng ta hãy tạo một thủ tục được lưu trữ. Truy vấn để tạo một thủ tục được lưu trữ như sau -
mysql> DELIMITER // mysql> CREATE PROCEDURE sp_getAllRecords() -> BEGIN -> SELECT *FROM employeetable; -> END; -> // Query OK, 0 rows affected (0.23 sec) mysql> DELIMITER ;
Gọi thủ tục đã lưu bằng lệnh CALL. Cú pháp như sau.
CALL yourStoredProcedureName();
Bây giờ gọi thủ tục trên trả về tất cả các bản ghi của bảng Employee. Truy vấn như sau.
mysql> CALL sp_getAllRecords();
Sau đây là kết quả.
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+ 2 rows in set (0.00 sec) Query OK, 0 rows affected (0.02 sec)