Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MYSQL:NẾU có điều kiện HOẶC &khớp REGEXP

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo cơ sở dữ liệu MySQL

  2. Laravel Crypt - So sánh các giá trị

  3. Xóa bản ghi có ID thấp nhất

  4. Tôi có thể sử dụng khả năng giao dịch giống như trong trình kích hoạt MySQL không

  5. Chuyển đổi ngày giờ của MySQL thành dấu thời gian