Cú pháp chuẩn DELIMITER cho Stored Procedure MySQL
DELIMITER thay đổi ký tự kết thúc câu lệnh từ ; sang ký tự khác (thường là //) để tránh nhầm lẫn với dấu chấm phẩy bên trong procedure.
Cú pháp mẫu
DELIMITER //
CREATE PROCEDURE ten_thu_tuc()
BEGIN
IF dieu_kien THEN
cau_lenh_1;
ELSE
cau_lenh_2;
END IF;
END //
DELIMITER ;
Ví dụ thực tế
mysql> DELIMITER //
mysql> CREATE PROCEDURE delimiter_demo()
-> BEGIN
-> IF 1 THEN
-> SELECT "Dieu kien luon dung";
-> ELSE
-> SELECT "Khong";
-> END IF;
-> END
-> //
Query OK, 0 rows affected (0.17 sec)
mysql> DELIMITER ;
Gọi procedure
mysql> call delimiter_demo();
Kết quả
+-------------------------------+ | Dieu kien luon dung | +-------------------------------+ | Dieu kien luon dung | +-------------------------------+
Quy tắc vàng:
DELIMITER //TRƯỚC khi CREATE PROCEDURE- Kết thúc procedure bằng
END // DELIMITER ;SAU khi xong để khôi phục mặc định- Bên trong procedure: dùng
;bình thường cho các câu lệnh con
Lỗi thường gặp: Quên DELIMITER ; ở cuối → các câu lệnh sau bị hiểu nhầm, báo lỗi cú pháp.