RAISEERROR
et ROLLBACK
sont utilisés dans la syntaxe TSQL (Microsoft SQL Server).
Dans le cas de MySQL, nous utilisons SIGNAL .. SET MESSAGE_TEXT ..
pour lancer une exception à l'intérieur du déclencheur :
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
Pour signaler une valeur SQLSTATE générique, utilisez '45000', ce qui signifie "exception définie par l'utilisateur non gérée".
Les valeurs d'erreur accessibles après l'exécution de SIGNAL sont la valeur SQLSTATE déclenchée par l'instruction SIGNAL et les éléments MESSAGE_TEXT et MYSQL_ERRNO.