SIGNAL
SIGNAL 语句提供 TiDB Server 返回 error 或者 warning 信息。
语法图
- SignalStmt
- conditionValue
- signalInformationItems
- signalInformationItem
- conditionInformationItemName
SignalStmt ::=
'SIGNAL' conditionValue
('SET' signalInformationItems )?
conditionValue ::=
'SQLSTATE' ('VALUE')? sqlstateValue
signalInformationItems ::=
signalInformationItem
| signalInformationItems signalInformationItem
signalInformationItem ::=
conditionInformationItemName '=' simpleValueSpecification
conditionInformationItemName ::=
'CLASS_ORIGIN'
| 'SUBCLASS_ORIGIN'
| 'MESSAGE_TEXT'
| 'MYSQL_ERRNO'
| 'CONSTRAINT_CATALOG'
| 'CONSTRAINT_SCHEMA'
| 'CONSTRAINT_NAME'
| 'CATALOG_NAME'
| 'SCHEMA_NAME'
| 'TABLE_NAME'
| 'COLUMN_NAME'
| 'CURSOR_NAME'
示例
signal SQLSTATE '02000';
ERROR 1643 (02000): Unhandled user-defined not found condition
signal SQLSTATE '02000' set MESSAGE_TEXT= 'xwsfq', MYSQL_ERRNO = 1234 ,COLUMN_NAME = 'xswasz',CONSTRAINT_NAME = 'xxxsas',CLASS_ORIGIN = 'xxxxx',SUBCLASS_ORIGIN= 'xxxxx',
CONSTRAINT_CATALOG='xzzasa',CONSTRAINT_SCHEMA='xxxzsaa',CATALOG_NAME='xxzsaa',SCHEMA_NAME='xZas',TABLE_NAME='xZsa',CURSOR_NAME='xazass'
signal SQLSTATE '02000' set MESSAGE_TEXT= 'xwsfq', MYSQL_ERRNO = 1234 ,COLUMN_NAME = 'xswasz',CONSTRAINT_NAME = 'xxxsas',CLASS_ORIGIN = 'xxxxx',SUBCLASS_ORIGIN= 'xxxxx', CONSTRAINT_CATALOG='xzzasa',CONSTRAINT_SCHEMA='xxxzsaa',CATALOG_NAME='xxzsaa',SCHEMA_NAME='xZas',TABLE_NAME='xZsa',CURSOR_NAME='xazass';
ERROR 1234 (02000): xwsfq
get Diagnostics CONDITION 1 @a1 = CLASS_ORIGIN ,@b1 = SUBCLASS_ORIGIN,@c1 =MYSQL_ERRNO, @d1= MESSAGE_TEXT,@e1 = RETURNED_SQLSTATE;
select @a1,@b1,@c1,@d1,@e1;
+-------+-------+------+-------+-------+
| @a1 | @b1 | @c1 | @d1 | @e1 |
+-------+-------+------+-------+-------+
| xxxxx | xxxxx | 1234 | xwsfq | 02000 |
+-------+-------+------+-------+-------+
1 row in set (0.00 sec)
MySQL 兼容性
平凯数据库不兼容 Signal condition_name 语法。