DECLARE <condition_name> CONDITION FOR {SQLSTATE sqlstate_code | MySQL_error_code};oder lesbarer:
DECLARE <condition_name> CONDITION FOR{SQLSTATE sqlstate_code | MySQL_error_code};
DECLARE CONTINUE HANDLER FOR <condition_name> {Action on Error};Eigene Fehlermeldungen erzeugen
optional:[# Error Condition Erzeugen
DECLARE <own_error> CONDITION FOR SQLSTATE SQLSTATE '45000';]
# Error im Code werfen
SIGNAL {<own_error>|SQLSTATE '45000'} SET MESSAGE_TEXT=<'Own Error Message'>, MYSQL_ERRNO = {>=50000};Syntax:
SIGNAL condition_value
[SET signal_information_item [, signal_information_item] ...]
condition_value:
{ SQLSTATE [VALUE] sqlstate_value | condition_name }
signal_information_item:
condition_information_item_name = simple_value_specification
condition_information_item_name:
{ CLASS_ORIGIN
| SUBCLASS_ORIGIN
| MESSAGE_TEXT
| MYSQL_ERRNO
| CONSTRAINT_CATALOG
| CONSTRAINT_SCHEMA
| CONSTRAINT_NAME
| CATALOG_NAME
| SCHEMA_NAME
| TABLE_NAME
| COLUMN_NAME
| CURSOR_NAME }NOTE
Eigene Fehlernummer sind frei wählbar im Bereich zwischen: 50000-51999
Beispiel
DECLARE own_error CONDITION FOR SQLSTATE '45000';
IF error = 1 THEN
SIGNAL own_error SET MESSAGE_TEXT='fehler geworfen', MYSQL_ERRNO = 50001;
END IF;