RAISEERROR
und ROLLBACK
werden in der TSQL-Syntax (Microsoft SQL Server) verwendet.
Im Fall von MySQL verwenden wir SIGNAL .. SET MESSAGE_TEXT ..
um eine Ausnahme innerhalb des Triggers auszulösen:
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
Um einen generischen SQLSTATE-Wert zu signalisieren, verwenden Sie „45000“, was „unbehandelte benutzerdefinierte Ausnahme“ bedeutet.
Die Fehlerwerte, auf die nach der Ausführung von SIGNAL zugegriffen werden kann, sind der von der SIGNAL-Anweisung ausgelöste SQLSTATE-Wert und die Elemente MESSAGE_TEXT und MYSQL_ERRNO.