Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Restrictions on Condition Handling

15.6.8 条件处理限制

SIGNALRESIGNALGET DIAGNOSTICS 不允许作为预备语句。例如,以下语句无效:

PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';

SQLSTATE 值在类 '04' 中不被特殊处理。它们与其他异常相同。

在标准 SQL 中,第一个条件与前一个 SQL 语句返回的 SQLSTATE 值相关。在 MySQL 中,这不被保证,因此要获取主要错误,不能这样做:

GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;

相反,应该这样做:

GET DIAGNOSTICS @cno = NUMBER;
GET DIAGNOSTICS CONDITION @cno @errno = MYSQL_ERRNO;