RAISEERROR
y ROLLBACK
se utilizan en la sintaxis TSQL (Microsoft SQL Server).
En el caso de MySQL, usamos SIGNAL .. SET MESSAGE_TEXT ..
para lanzar una excepción dentro 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
Para señalar un valor SQLSTATE genérico, use '45000', que significa "excepción definida por el usuario no controlada".
Los valores de error a los que se puede acceder después de la ejecución de SIGNAL son el valor SQLSTATE generado por la instrucción SIGNAL y los elementos MESSAGE_TEXT y MYSQL_ERRNO.