sql >> Databasteknik >  >> RDS >> Mysql

MYSQL:OM har OR-villkor ®EXP-matchning

Fick äntligen den slutliga och korrekta versionen av trigger efter att ha felsökt många möjligheter och grävt SO-svar. Förväntade mig ett snabbt svar eftersom det inte var den där SCI-FI-frågan som andra utvecklare inte kunde knäcka.

Fel 1 :Mellanslag mellan ENDIF . Det ska vara END IF .

Mistag 2 :Saknar new.column från 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. Hur fixar jag InnoDB-korruption som låser ett tabellnamn från att skapas (fel:-1) på AWS RDS?

  2. MySQL-valsfrågan är fruktansvärt långsam

  3. Snabbaste sättet att läsa enorma MySQL-tabeller i python

  4. Hur kan jag slå samman kolumnerna från två tabeller till en utdata?