PDF (US Ltr)
- 26.8Mb
PDF (A4)
- 26.8Mb
SIGNAL
、RESIGNAL
、および GET DIAGNOSTICS
は準備済みのステートメントとして許可されていません。たとえば、次のステートメントは無効です。
PREPARE stmt1 FROM 'SIGNAL SQLSTATE "02000"';
クラス '04'
の SQLSTATE
値は特別扱いされません。ほかの例外と同じように扱われます。
標準 SQL には、ネスト化された実行のコンテキストごとの診断領域を含んだ、診断領域スタックがあります。標準 SQL 構文には、スタック領域を参照するための GET STACKED DIAGNOSTICS
が含まれます。MySQL では、もっとも新しく書き込んだステートメントの情報を含む単一の診断領域があるため、STACKED
キーワードをサポートしません。セクション13.6.7.7「MySQL の診断領域」も参照してください。
標準 SQL では、最初の条件は、以前の SQL ステートメントに対して返される SQLSTATE
値に関連します。MySQL ではこれは保証されていないので、メインエラーを取得するために、次のようにはできません。
GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
代わりに次のようにします。
GET DIAGNOSTICS @cno = NUMBER;
GET DIAGNOSTICS CONDITION @cno @errno = MYSQL_ERRNO;