CHECK TABLE
CHECK TABLE table[, ...] [CHANGED|QUICK|FAST|MEDIUM|EXTENDED|FOR UPGRADE]Use this statement to check tables for errors; as of version 5.1.9 of MySQL, it works with the
MyISAM, InnoDB, ARCHIVE, and CSV storage engines. If errors are
discovered, you should run the REPAIR TABLE
statement to repair the table. Multiple tables may be given in a
comma-separated list. This statement requires
SELECT privileges.
There are several ways to control checking, specified after the list of tables:
CHANGEDChecks only tables that have been changed since the last check.
QUICKChecks tables for errors, but won’t scan individual rows for linking problems.
FASTChecks only tables that have not been closed properly.
MEDIUMDetermines the key checksum for the rows and compares the results against the checksum for the keys. This option also checks rows to ensure that links were deleted properly.
EXTENDEDThoroughly checks each row for errors. It takes a long time to complete.
FOR UPGRADEChecks a table against the version of MySQL in use. If the
table was created from an earlier version and there have been
changes to the new version that make the table incompatible, the
statement will then begin the EXTENDED method
to thoroughly check the table. If it’s successful, it will note
that the table has already been checked so that future checks
can avoid the time-consuming check. This option is available
starting with version 5.1.7 of MySQL.
Here is an example of how you can use this statement:
CHECK TABLE workreq MEDIUM; +----------------------+-------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------------------+-------+----------+----------+ | workrequests.workreq | check | status | OK | +----------------------+-------+----------+----------+
If an error is found with an InnoDB table, the server is shut down to prevent more problems. Check the error log for details to resolve the problem.