DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) repair-table

Info Catalog (mysql.info) optimize-table (mysql.info) table-maintenance-sql (mysql.info) restore-table
 
 13.5.2.6 `REPAIR TABLE' Syntax
 ..............................
 
      REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE
          TBL_NAME [, TBL_NAME] ... [QUICK] [EXTENDED] [USE_FRM]
 
 `REPAIR TABLE' repairs a possibly corrupted table. By default, it has
 the same effect as `myisamchk --recover TBL_NAME'. `REPAIR TABLE' works
 for `MyISAM' and for `ARCHIVE' tables. See 
 myisam-storage-engine, and  archive-storage-engine.
 
 Normally, you should never have to run this statement.  However, if
 disaster strikes, `REPAIR TABLE' is very likely to get back all your
 data from a `MyISAM' table. If your tables become corrupted often, you
 should try to find the reason for it, to eliminate the need to use
 `REPAIR TABLE'. See  crashing, and  myisam-table-problems.
 
 *Warning:* If the server dies during a `REPAIR TABLE' operation, it is
 essential after restarting it that you immediately execute another
 `REPAIR TABLE' statement for the table before performing any other
 operations on it. (It is always a good idea to start by making a
 backup.) In the worst case, you might have a new clean index file
 without information about the data file, and then the next operation
 you perform could overwrite the data file. This is an unlikely but
 possible scenario.
 
 `REPAIR TABLE' returns a result set with the following columns:
 
 *Column*    *Value*
 `Table'     The table name
 `Op'        Always `repair'
 `Msg_type'  One of `status', `error', `info', or
             `warning'
 `Msg_text'  The message
 
 The `REPAIR TABLE' statement might produce many rows of information for
 each repaired table. The last row has a `Msg_type' value of `status'
 and `Msg_test' normally should be `OK'. If you do not get `OK', you
 should try repairing the table with `myisamchk --safe-recover'. (`REPAIR
 TABLE' does not yet implement all the options of `myisamchk'. We plan
 to make it more flexible in the future.) With `myisamchk
 --safe-recover', you can also use options that `REPAIR TABLE' does not
 support, such as -max-record-length.
 
 If `QUICK' is given, `REPAIR TABLE' tries to repair only the index
 tree. This type of repair is like that done by `myisamchk --recover
 --quick'.
 
 If you use `EXTENDED', MySQL creates the index row by row instead of
 creating one index at a time with sorting. This type of repair is like
 that done by `myisamchk --safe-recover'.
 
 There is also a `USE_FRM' mode available for `REPAIR TABLE'. Use this
 if the `.MYI' index file is missing or if its header is corrupted. In
 this mode, MySQL re-creates the `.MYI' file using information from the
 `.frm' file. This kind of repair cannot be done with `myisamchk'.
 * Use this mode _only_ if you cannot use regular `REPAIR' modes.
 `.MYI' header contains important table metadata (in particular, current
 `AUTO_INCREMENT' value and `Delete link') that are lost in `REPAIR ...
 USE_FRM'. Don't use `USE_FRM' if the table is compressed because this
 information is also stored in the `.MYI' file.
 
 `REPAIR TABLE' statements are written to the binary log unless the
 optional `NO_WRITE_TO_BINLOG' keyword (or its alias `LOCAL') is used.
 This is done so that `REPAIR TABLE' statements used on a MySQL server
 acting as a replication master will be replicated by default to the
 replication slave.
 
Info Catalog (mysql.info) optimize-table (mysql.info) table-maintenance-sql (mysql.info) restore-table
automatically generated byinfo2html