Cuối cùng đã nhận được phiên bản chính xác và cuối cùng của trình kích hoạt sau khi gỡ lỗi rất nhiều khả năng và đào các câu trả lời SO. Tôi mong đợi một phản hồi nhanh chóng vì đó không phải là câu hỏi SCI-FI mà các nhà phát triển khác không thể bẻ khóa.
Sai lầm 1 :Khoảng trắng giữa ENDIF
. Nó phải là END IF
.
Sai lầm 2 :Thiếu new.column
từ định nghĩa trình kích hoạt;
PHIÊN BẢN ĐÚNG :
CREATE TRIGGER `trg_contact_insert_profanity_check` BEFORE INSERT ON `contacts`
FOR EACH ROW BEGIN
IF ((new.email IN (SELECT word FROM profanity)) OR (new.message
IN (SELECT word FROM profanity)) OR (new.message REGEXP '/(http|https|ftp|ftps)?(://)?[a-zA-Z0-9-.]+.[a-zA-Z]{2,3}(/S*)?/' ))
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = "Database Error: BAD REQUEST";
END IF;
END