15.6.8 Ограничения обработки условий
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.