SIGNAL
、RESIGNAL
、および GET DIAGNOSTICS
は準備済みのステートメントとして許可されていません。 たとえば、次のステートメントは無効です。
PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';
クラス '04'
の SQLSTATE
値は特別扱いされません。 ほかの例外と同じように扱われます。
標準 SQL では、最初の条件は、以前の SQL ステートメントに対して返される SQLSTATE
値に関連します。 MySQL ではこれは保証されていないので、メインエラーを取得するために、次のようにはできません。
GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
代わりに次のようにします。
GET DIAGNOSTICS @cno = NUMBER;
GET DIAGNOSTICS CONDITION @cno @errno = MYSQL_ERRNO;