Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách dùng DELIMITER đúng trong Stored Procedure MySQL

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:

  1. DELIMITER // TRƯỚC khi CREATE PROCEDURE
  2. Kết thúc procedure bằng END //
  3. DELIMITER ; SAU khi xong để khôi phục mặc định
  4. 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.