RAISEERROR
i ROLLBACK
są używane w składni TSQL (Microsoft SQL Server).
W przypadku MySQL używamy SIGNAL .. SET MESSAGE_TEXT ..
aby rzucić wyjątek wewnątrz wyzwalacza:
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
Aby zasygnalizować ogólną wartość SQLSTATE, użyj „45000”, co oznacza „nieobsługiwany wyjątek zdefiniowany przez użytkownika”.
Wartości błędów dostępne po wykonaniu SIGNAL to wartość SQLSTATE wywołana przez instrukcję SIGNAL oraz elementy MESSAGE_TEXT i MYSQL_ERRNO.