Spec-Zone.ru › MySQL 5.7

13.6.7.9 Ограничения обработки условий

SIGNAL, RESIGNAL и GET DIAGNOSTICS не допускаются в качестве подготовленных запросов. Например, следующий запрос некорректен:

PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';

Значения в классе '04' не обрабатываются особым образом. Они обрабатываются так же, как и другие исключения.

В стандартном SQL первое условие относится к значению SQLSTATE, возвращённому предыдущим SQL-запросом. В MySQL это не гарантируется, поэтому для получения основной ошибки нельзя делать так:

GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;

Вместо этого делайте так:

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/condition-handling-restrictions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API