RAISEERROR
и ROLLBACK
се използват в синтаксиса на TSQL (Microsoft SQL Server).
В случая на MySQL използваме SIGNAL .. SET MESSAGE_TEXT ..
за да хвърлите изключение в тригера:
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
За да сигнализирате обща стойност на SQLSTATE, използвайте „45000“, което означава „необработено изключение, дефинирано от потребителя“.
Стойностите за грешка, които са достъпни след изпълнение на SIGNAL, са стойността на SQLSTATE, издигната от оператора SIGNAL и елементите MESSAGE_TEXT и MYSQL_ERRNO.