RAISEERROR
en ROLLBACK
worden gebruikt in de TSQL-syntaxis (Microsoft SQL Server).
In het geval van MySQL gebruiken we SIGNAL .. SET MESSAGE_TEXT ..
om een uitzondering in de Trigger te gooien:
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
Gebruik '45000' om een generieke SQLSTATE-waarde te signaleren, wat 'onverwerkte, door de gebruiker gedefinieerde uitzondering' betekent.
De foutwaarden die toegankelijk zijn nadat SIGNAL is uitgevoerd, zijn deSQLSTATE-waarde die wordt gegenereerd door de SIGNAL-instructie en de items MESSAGE_TEXT enMYSQL_ERRNO.