SIGNAL

SIGNAL 语句提供 TiDB Server 返回 error 或者 warning 信息。

语法图

SignalStmt
SIGNALconditionValueSETsignalInformationItems
conditionValue
SQLSTATEVALUEsqlstateValue
signalInformationItems
signalInformationItemsignalInformationItemssignalInformationItem
signalInformationItem
conditionInformationItemName=simpleValueSpecification
conditionInformationItemName
CLASS_ORIGINSUBCLASS_ORIGINMESSAGE_TEXTMYSQL_ERRNOCONSTRAINT_CATALOGCONSTRAINT_SCHEMACONSTRAINT_NAMECATALOG_NAMESCHEMA_NAMETABLE_NAMECOLUMN_NAMECURSOR_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 语法。

另请参阅