条件处理的限制
SIGNAL
,RESIGNAL
和GET DIAGNOSTICS
不允许用作准备好的语句。例如,此语句无效:
PREPARE stmt1FROM 'SIGNAL SQLSTATE "02000"';
SQLSTATE
类'04'
中的值没有特别处理。它们的处理方式与其他例外相同。
在标准SQL中,第一个条件与SQLSTATE
为先前的SQL语句返回的值有关。在MySQL中,这不能保证,因此要获取主要错误,您不能这样做:
GET DIAGNOSTICS CONDITION 1 @errno =MYSQL_ERRNO ;
相反,请执行以下操作:
GET DIAGNOSTICS @cno =NUMBER ;GET DIAGNOSTICS CONDITION @cno @errno =MYSQL_ERRNO ;