sql >> Database teknologi >  >> RDS >> Mysql

MYSQL:HVIS har OR-tilstand ®EXP-match

Fik endelig den endelige og korrekte version af trigger efter at have fejlrettet en masse muligheder og gravet SO-svar. Forventede et hurtigt svar, da det ikke var det SCI-FI-spørgsmål, som andre udviklere ikke var i stand til at knække.

Fejl 1 :Mellemrum mellem ENDIF . Det skal være END IF .

Fejl 2 :Mangler new.column fra triggerdefinition;

KORREKT VERSION :

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. Sporing af PostgreSQL med perf

  2. hvordan bruger man JSON Data i chart.js?

  3. Sådan opretter du en unik begrænsning på flere kolonner i SQL Server - SQL Server / TSQL vejledning del 96

  4. Lead og Lag-funktion i Mysql