RAISEERROR
och ROLLBACK
används i TSQL (Microsoft SQL Server) syntax.
När det gäller MySQL använder vi SIGNAL .. SET MESSAGE_TEXT ..
för att kasta ett undantag i utlösaren:
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
För att signalera ett generiskt SQLSTATE-värde, använd '45000', vilket betyder "ohanterat användardefinierat undantag."
Felvärdena som är tillgängliga efter att SIGNAL körts är SQLSTATE-värdet som höjts av SIGNAL-satsen och MESSAGE_TEXT och MYSQL_ERRNO-objekten.