8.4 中文镜像

MySQL 8.4 参考手册 · 中文镜像

正文为中文,英文原文默认隐藏。点击任意中文段落即可展开 / 收起对应英文原文。

打开官方英文原文 ↗

译文由机器翻译生成,仅供理解参考;有疑问请以官方英文原文为准。

中文点击中文段落可显示 / 隐藏英文原文本页译文覆盖 100%

15.6.8 条件处理15.6.8 Restrictions on Condition Handling

限制SIGNAL, RESIGNAL, GET DIAGNOSTICS 不允许作为预备语句。例如,该语句无效SIGNAL, RESIGNAL, and GET DIAGNOSTICS are not permissible as prepared statements. For example, this statement is invalid:

PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';

:SQLSTATE在类'04'中不被特别处理。它们的处理方式与其他例外相同。SQLSTATE values in class '04' are not treated specially. They are handled the same as other exceptions.

在标准 SQL 中,第一个条件与前一个 SQL 语句返回的SQLSTATE。在 MySQL 中,这种情况并不保证,所以要出现主要错误,你不能这样做:In standard SQL, the first condition relates to the SQLSTATE value returned for the previous SQL statement. In MySQL, this is not guaranteed, so to get the main error, you cannot do this:

GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;

相反,这样做Instead, do this:

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