DELIMITER
lệnh là một nội trang máy khách shell MySQL và nó chỉ được chương trình đó (và Trình duyệt truy vấn MySQL) công nhận. Không cần thiết phải sử dụng DELIMITER
nếu bạn thực thi các câu lệnh SQL trực tiếp thông qua một API.
Mục đích của DELIMITER
là để giúp bạn tránh mơ hồ về việc chấm dứt CREATE FUNCTION
câu lệnh, khi bản thân câu lệnh có thể chứa các ký tự dấu chấm phẩy. Điều này quan trọng trong trình khách shell, nơi theo mặc định dấu chấm phẩy kết thúc một câu lệnh SQL. Bạn cần đặt dấu kết thúc câu lệnh thành một số ký tự khác để gửi nội dung của một hàm (hoặc trình kích hoạt hoặc thủ tục).
CREATE FUNCTION trivial_func (radius float)
RETURNS FLOAT
BEGIN
IF radius > 1 THEN
RETURN 0.0; <-- does this semicolon terminate RETURN or CREATE FUNCTION?
ELSE
RETURN 1.0;
END IF;
END
Vì API thường cho phép bạn gửi một câu lệnh SQL tại một thời điểm, nên không có sự mơ hồ - giao diện biết rằng bất kỳ dấu chấm phẩy nào bên trong phần thân của định nghĩa hàm của bạn sẽ không kết thúc toàn bộ CREATE FUNCTION
tuyên bố. Vì vậy, không cần thay đổi phần tử kết thúc câu lệnh bằng DELIMITER
.