RAISEERROR
e ROLLBACK
sono utilizzati nella sintassi TSQL (Microsoft SQL Server).
Nel caso di MySQL, utilizziamo SIGNAL .. SET MESSAGE_TEXT ..
per generare un'eccezione all'interno del Trigger:
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
Per segnalare un valore SQLSTATE generico, usa '45000', che significa "eccezione definita dall'utente non gestita".
I valori di errore accessibili dopo l'esecuzione di SIGNAL sono il valoreSQLSTATE generato dall'istruzione SIGNAL e gli elementi MESSAGE_TEXT eMYSQL_ERRNO.