無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.5 InnoDB ストレージ エンジン :: 13.5.15 InnoDB エラー処理
« 13.5.14.3 テーブルのデフラグメント化

13.5.15.1 InnoDB エラーコード »
Section Navigation      [Toggle]
  • 13.5 InnoDB ストレージ エンジン
  • 13.5.1 InnoDB 概要
  • 13.5.2 InnoDB 連絡先情報
  • 13.5.3 InnoDB 設定
  • 13.5.4 InnoDB 起動オプションとシステム変数
  • 13.5.5 InnoDB テーブルスペースを作成する
  • 13.5.6 InnoDB テーブルの作成と利用
  • 13.5.7 InnoDB データとログ ファイルの追加と削除
  • 13.5.8 InnoDB データベースのバックアップと復旧
  • 13.5.9 InnoDB データベースを別のマシンに移動する
  • 13.5.10 InnoDB トランザクション モデルとロック
  • 13.5.11 InnoDB パフォーマンス チューニング ヒント
  • 13.5.12 マルチバージョンの実装
  • 13.5.13 InnoDB テーブルとインデックス構造
  • 13.5.14 InnoDB ファイル領域の管理とディスク I/O
  • 13.5.15 InnoDB エラー処理
    • 13.5.15.1 InnoDB エラーコード
    • 13.5.15.2 OS エラー コード
  • 13.5.16 InnoDB テーブル上の制約
  • 13.5.17 InnoDB トラブルシューティング

13.5.15. InnoDB エラー処理

[+/-]

13.5.15.1. InnoDB エラーコード
13.5.15.2. OS エラー コード

InnoDB でのエラー処理は、必ずしも SQL スタンダードに明記されている通りではありません。スタンダードによると、SQL ステートメントでエラーが発生した場合は、その SQL ステートメントでロールバックを実行するように記述されています。InnoDB では、ステートメントの一部のみ、またはトランザクション全体がロールバックされる事があります。 次の項目は、InnoDB でのエラー処理の仕様を説明しています:

  • テーブルスペース内でファイル領域を使い果たすと、MySQL の Table is full エラーが発生し、InnoDB が SQL ステートメントをロールバックします。

  • トランザクション デッドロックが発生すると、InnoDB がトランザクション全体をロールバックします。 ロック待ちタイムアウトが起きた場合は、InnoDB は最新の SQL ステートメントだけをロールバックします。

    トランザクション ロールバックが、デッドロックやロック待ちタイムアウトによって引き起こされると、それはトランザクション内のステートメントの効果をキャンセルします。しかし、トランザクション開始ステートメントが START TRANSACTION か BEGIN ステートメントであると、ロールバックはこのステートメントをキャンセルしません。さらなる SQL は、暗黙のコミットを引き起こす COMMIT、ROLLBACK、またはいくつかの SQL ステートメントが発生するまでの間トランザクションの一部になります。

  • ステートメント内で IGNORE オプションを指定しなければ、複製キー エラーは SQL ステートメントをロールバックします。

  • row too long error は SQL ステートメントをロールバックします。

  • その他のエラーは主に MySQL のコード レイヤ(InnoDB ストレージ エンジン レベルの上)によって検出され、対応する SQL ステートメントがロールバックされます。ロックは単一 SQL ステートメントのロールバック内でリリースされません。

暗黙のロールバックの最中に、明示的な ROLLBACK SQL コマンドの実行の最中と同じように、SHOW PROCESSLIST は関連する接続の State カラム内でRolling back を表示します。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.