Name

CHECK TABLE

Synopsis

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:

CHANGED

Checks only tables that have been changed since the last check.

QUICK

Checks tables for errors, but won’t scan individual rows for linking problems.

FAST

Checks only tables that have not been closed properly.

MEDIUM

Determines 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.

EXTENDED

Thoroughly checks each row for errors. It takes a long time to complete.

FOR UPGRADE

Checks 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 ...

Get MySQL in a Nutshell, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.