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

Sử dụng DELIMITER đúng cách trong Stored Procedure MySQL và chèn dữ liệu

Giới thiệu

Khi tạo Stored Procedure (thủ tục lưu trữ) chứa nhiều câu lệnh SQL, cần thay đổi delimiter (ký tự kết thúc câu lệnh) mặc định từ ; sang ký tự khác (thường là // hoặc $$) để MySQL không nhầm lẫn giữa dấu kết thúc câu lệnh bên trong procedure và dấu kết thúc câu lệnh CREATE PROCEDURE.

Quy trình chuẩn

  1. DELIMITER // — Đổi delimiter tạm thời.
  2. Viết CREATE PROCEDURE ... BEGIN ... END // — Kết thúc procedure bằng delimiter mới.
  3. DELIMITER ; — Khôi phục delimiter mặc định.

Ví dụ minh họa

Bước 1: Tạo bảng

CREATE TABLE DemoTable2028 (
    StudentFirstName VARCHAR(20),
    StudentLastName VARCHAR(20)
);

Bước 2: Tạo procedure chèn dữ liệu

DELIMITER //
CREATE PROCEDURE insert_name(IN fname VARCHAR(20), IN lname VARCHAR(20))
BEGIN
    INSERT INTO DemoTable2028 VALUES (fname, lname);
END //
DELIMITER ;

Bước 3: Gọi procedure

CALL insert_name('Chris', 'Brown');

Bước 4: Kiểm tra

SELECT * FROM DemoTable2028;
+------------------+-----------------+
| StudentFirstName | StudentLastName |
+------------------+-----------------+
| Chris            | Brown           |
+------------------+-----------------+

Lưu ý: Nếu quên khôi phục DELIMITER ;, các câu lệnh tiếp theo sẽ bị lỗi cú pháp. Một số công cụ GUI (Workbench, DBeaver) cho phép chạy khối lệnh mà không cần đổi delimiter thủ công.