Delimiter là ký tự kết thúc câu lệnh. Mặc định là dấu chấm phẩy ;.
Khi viết Stored Procedure, Function, Trigger chứa nhiều câu lệnh bên trong, cần đổi delimiter tạm thời để tránh MySQL chạy từng câu lệnh riêng lẻ.
Cú pháp:
DELIMITER //
CREATE PROCEDURE ten_thu_tuc()
BEGIN
-- Nhiều câu lệnh kết thúc bằng ;
SELECT * FROM bang1;
SELECT * FROM bang2;
END //
DELIMITER ;
Ví dụ thực tế:
mysql> DELIMITER //
mysql> CREATE PROCEDURE DisplayALL()
-> BEGIN
-> SELECT * FROM GetRecordsFromNow;
-> END
-> //
Query OK, 0 rows affected (0.40 sec)
mysql> DELIMITER ;
mysql> CALL DisplayALL();
Ký tự thường dùng: //, $$, || (tránh trùng với ký tự trong code).
Lưu ý: Chỉ cần đổi delimiter trong client dòng lệnh (mysql CLI) hoặc script. Các công cụ GUI (Workbench, DBeaver...) thường xử lý tự động.