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.