Signal Condition Information Items
The following table lists the names of diagnostics area condition information items that can be set in a SIGNAL
(or RESIGNAL
) statement. All items are standard SQL except MYSQL_ERRNO
, which is a MariaDB extension. For more information about these items see , "The MariaDB Diagnostics Area".
Item Name Definition --------- ---------- CLASS_ORIGIN VARCHAR(64) SUBCLASS_ORIGIN VARCHAR(64) CONSTRAINT_CATALOG VARCHAR(64) CONSTRAINT_SCHEMA VARCHAR(64) CONSTRAINT_NAME VARCHAR(64) CATALOG_NAME VARCHAR(64) SCHEMA_NAME VARCHAR(64) TABLE_NAME VARCHAR(64) COLUMN_NAME VARCHAR(64) CURSOR_NAME VARCHAR(64) MESSAGE_TEXT VARCHAR(128) MYSQL_ERRNO SMALLINT UNSIGNED
The character set for character items is UTF-8.
It is illegal to assign NULL
to a condition information item in a SIGNAL
statement.
A SIGNAL
statement always specifies an SQLSTATE
value, either directly, or indirectly by referring to a named condition defined with an SQLSTATE
value. The first two characters of an SQLSTATE
value are its class, and the class determines the default value for the condition information items:
- Class =
'00'
(success)Illegal.
SQLSTATE
values that begin with'00'
indicate success and are not valid forSIGNAL
. - Class =
'01'
(warning)MESSAGE_TEXT = 'Unhandled user-defined warning'; MYSQL_ERRNO = ER_SIGNAL_WARN
- Class =
'02'
(not found)MESSAGE_TEXT = 'Unhandled user-defined not found'; MYSQL_ERRNO = ER_SIGNAL_NOT_FOUND
- Class >
'02'
(exception)MESSAGE_TEXT = 'Unhandled user-defined exception'; MYSQL_ERRNO = ER_SIGNAL_EXCEPTION
For legal classes, the other condition information items are set as follows:
CLASS_ORIGIN = SUBCLASS_ORIGIN = ''; CONSTRAINT_CATALOG = CONSTRAINT_SCHEMA = CONSTRAINT_NAME = ''; CATALOG_NAME = SCHEMA_NAME = TABLE_NAME = COLUMN_NAME = ''; CURSOR_NAME = '';
The error values that are accessible after SIGNAL
executes are the SQLSTATE
value raised by the SIGNAL
statement and the MESSAGE_TEXT
and MYSQL_ERRNO
items. These values are available from the C API:
SQLSTATE
value: Callmysql_sqlstate()
MYSQL_ERRNO
value: Callmysql_errno()
MESSAGE_TEXT
value: Callmysql_error()
From SQL, the output from SHOW WARNINGS
and SHOW ERRORS
indicates the MYSQL_ERRNO
and MESSAGE_TEXT
values in the Code
and Message
columns.
To retrieve information from diagnostics area, use the GET DIAGNOSTICS
statement (see , "GET DIAGNOSTICS
Syntax"). For information about the diagnostics area, see , "The MariaDB Diagnostics Area".