CHECK TABLEtbl_name[,tbl_name] ... [option] ...option= {FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
          CHECK TABLE
          はテーブルのエラーを確認します。CHECK
          TABLE は
          MyISAM、InnoDB、そして
          ARCHIVE
          テーブルにのみ機能します。MySQL 5.1.9
          から、CHECK は CSV
          テーブルにも有効になりました。
          項13.11. 「CSV ストレージエンジン」
          を参照してください。MyISAM
          テーブルに対しては、キー統計もまた更新されます。
        
          CHECK TABLE
          は、既に存在していないビュー定義内で参照されるテーブルなどのような、ビューの問題も確認できます。
        
          CHECK TABLE
          は次のカラムを利用して結果セットを返します。
        
| カラム | 値 | 
| Table | テーブル名 | 
| Op | いつも check | 
| Msg_type | status、error、info、またはwarningの1つ | 
| Msg_text | メッセージ | 
          ステートメントは各確認済テーブルにたくさんの情報行を作成する可能性がある事に注意してください。最後の行は
          status の Msg_type
          値を持ち、Msg_text は通常
          OK になります。もし
          OK か Table is already up to
          date
          が得られなければ、通常はテーブルの修復を起動する必要があります。詳しくは
          項4.9.4. 「テーブル保守とクラッシュ リカバリ」
          を参照してください。Table is already up to
          date は、そのテーブルのストレージ
          エンジンが、そのテーブルを確認する必要は無いと指示しているという意味です。
        
          FOR UPGRADE
          オプションは、名づけられたテーブルが現在の
          MySQL
          バージョンと互換性があるか確認します。このオプションは
          MySQL 5.1.7 で追加されました。サーバは
          FOR UPGRADE
          を利用し、作成された時以降、各テーブルに対してデータ
          タイプやインデックスに互換性の無い変更があったかどうかを確認します。もし無ければ、その確認は成功です。反対に、もし非適応性があれば、サーバはテーブルに対して総確認を行います。(少々時間がかかります。)もし総確認が成功すれば、サーバはテーブルの
          .frm ファイルに現在の MySQL
          バージョン番号をマークします。.frm
          ファイルをマークする事で、同じバージョンのサーバによるそのテーブルの今後の確認が早くなる事が保証されます。
        
データタイプの格納フォーマットが変更されたか、そのソート順が変更された為に、非適合性が発生する可能性があります。私たちの目的はそれらの変更を避ける事ですが、時として各リリースの間に、非適合性よりもさらに深刻である問題を修正する事の方が大切な事もあります。
          現在は、FOR UPGRADE
          でこれらの非適合性が見つかっています。
        
              MySQL 4.1 と 5.0 の間で、InnoDB
              と MyISAM テーブルの為の
              TEXT
              カラム内の最後の空白のインデックス順が変更されました。
            
              新しい DECIMAL
              データタイプの格納方法は MySQL 5.0.3 と 5.0.5
              の間に変更されました。
            
          それ以外のチェックポイントは次のテーブルに表されています。これらのオプションは
          MyISAM
          テーブルの確認だけに適応し、InnoDB
          テーブルとビューでは無視されます。
        
| タイプ | 意味 | 
| QUICK | 不正リンクの確認の為に行をスキャンしないでください。 | 
| FAST | 適切に閉じられていないテーブルだけを確認してください。 | 
| CHANGED | 最後の確認以降変更されたか、または正常に閉じられていないテーブルだけを確認してください。 | 
| MEDIUM | 削除されたリンクが有効である事を検証する為に行をスキャンしてください。これは行のキー チェックサムも計算し、それをキーの為に計算されたチェックサムを利用して検証します。 | 
| EXTENDED | 各行の全てのキーに対して総キー参照を行ってください。これはテーブルが100%整合性がある事を保証しますが、時間がかかる作業です。 | 
          もし
          QUICK、MEDIUM、または
          EXTENDED
          のどのオプションも指定されなければ、動的フォーマットである
          MyISAM
          テーブルのデフォルトの確認タイプは
          MEDIUM
          になります。これは、テーブル上で
          myisamchk --medium-check
          tbl_name
          を起動させるのと同じ結果になります。CHANGED
          か FAST
          が指定されない限り、静的フォーマットの
          MyISAM
          テーブルのデフォルトの確認タイプは、MEDIUM
          です。その場合、デフォルトは
          QUICK
          です。行はめったに破壊されないので、CHANGED
          と FAST
          の行スキャンは省かれます。
        
テーブルが正しく閉じられているかどうかの確認の為に簡単なチェックを行っている次の例のように、確認オプションを組み合わせる事も可能です。
CHECK TABLE test_table FAST QUICK;
          注意:場合によっては
          CHECK TABLE
          でテーブルが変更されます。これは、テーブルが
          「corrupted」 や 「not closed
          properly」
          と印されているにも関わらず、CHECK
          TABLE
          がそのテーブル内に何の問題も発見できない時に起こります。この場合、CHECK
          TABLE はテーブルに OK の印をつけます。
        
もしテーブルが破損すると、その問題はデータ部分ではなく、ほとんどインデックス内にあるでしょう。これまでに紹介された全ての確認タイプはインデックスをくまなく確認するので、ほとんどのエラーを見つける事ができるはずです。
          もし OK
          であると思われるテーブルを確認したければ、確認オプションは利用しない、または利用するのであれば
          QUICK
          オプションを利用しなければいけません。急いでいる為、QUICK
          がデータ
          ファイル中に何のエラーも発見しないかもしれないという小さいリスクを負う事ができる場合には、後者を利用してください。(ほとんどの場合、通常の利用条件下であれば、MySQL
          はデータ
          ファイル中に何らかのエラーを発見するはずです。その場合、そのテーブルは
          「corrupted」
          と印が付けられ、修復されるまでは利用できなくなります。)
        
          FAST と CHANGED
          は、テーブルを頻繁に確認したい場合に、スクリプト(例えば、cron
          から実行されるように)から利用されるようになっています。ほとんどの場合、FAST
          は CHANGED
          より好まれます。(MyISAM
          コード内にバグを見つけた可能性がある場合のみ、この方法は好ましくありません。)
        
          通常確認を起動した後で、MySQL
          が行を更新したりキーで行を見つけたりする時に、テーブルから変なエラーが発生する場合のみEXTENDED
          が利用されます。これは通常確認が成功した場合は、めったに起こらないでしょう。
        
          CHECK TABLE
          によって報告されたいくつかの問題は自動的に修復されません。
        
              Found row where the auto_increment column has the
              value 0.
            
              これは、 AUTO_INCREMENT
              インデックス
              カラムが0の値を含むテーブル内に行を持っている事を意味します。(UPDATE
              ステートメントを利用して、カラムを明示的に
              0
              に設定する事で、AUTO_INCREMENT
              カラムが 0
              である行を作成する事が可能です。)
            
              これ自体はエラーではないのですが、このテーブルを一度ダンプしそれを復旧させる、またはテーブル上に
              ALTER TABLE
              を実行する事を決めた時に問題を引き起こします。この場合、AUTO_INCREMENT
              カラムは、複製キー
              エラーのような問題を引き起こす可能性がある
              AUTO_INCREMENT
              カラムのルールに従って値を変更します。
            
              警告を除去するには、カラム値を0以外の値に設定する為に
              UPDATE
              ステートメントを実行してください。
            

