RAISEERROR
og ROLLBACK
bruges i TSQL (Microsoft SQL Server) syntaks.
I tilfælde af MySQL bruger vi SIGNAL .. SET MESSAGE_TEXT ..
for at smide en undtagelse inde i triggeren:
BEGIN
IF (DATEDIFF(CURRENT_DATE(),NEW.birth_date) < 6570) THEN
-- Throw Exception
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Age is less than 18 years!';
END IF; -- A semicolon (delimiter) is missing here
END
For at signalere en generisk SQLSTATE-værdi skal du bruge '45000', som betyder "ubehandlet brugerdefineret undtagelse."
De fejlværdier, der er tilgængelige, efter at SIGNAL er udført, er SQLSTATE-værdien, der er hævet af SIGNAL-sætningen og elementerne MESSAGE_TEXT og MYSQL_ERRNO.