DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) alter-table-problems

Info Catalog (mysql.info) table-definition-issues (mysql.info) table-definition-issues (mysql.info) change-column-order
 
 A.7.1 Problems with `ALTER TABLE'
 ---------------------------------
 
 `ALTER TABLE' changes a table to the current character set. If you get
 a duplicate-key error during `ALTER TABLE', the cause is either that
 the new character sets maps two keys to the same value or that the table
 is corrupted. In the latter case, you should run `REPAIR TABLE' on the
 table.
 
 If `ALTER TABLE' dies with the following error, the problem may be that
 MySQL crashed during an earlier `ALTER TABLE' operation and there is an
 old table named `A-XXX' or `B-XXX' lying around:
 
      Error on rename of './database/name.frm'
      to './database/B-XXX.frm' (Errcode: 17)
 
 In this case, go to the MySQL data directory and delete all files that
 have names starting with `A-' or `B-'. (You may want to move them
 elsewhere instead of deleting them.)
 
 `ALTER TABLE' works in the following way:
 
    * Create a new table named `A-XXX' with the requested structural
      changes.
 
    * Copy all rows from the original table to `A-XXX'.
 
    * Rename the original table to `B-XXX'.
 
    * Rename `A-XXX' to your original table name.
 
    * Delete `B-XXX'.
 
 If something goes wrong with the renaming operation, MySQL tries to
 undo the changes. If something goes seriously wrong (although this
 shouldn't happen), MySQL may leave the old table as `B-XXX'. A simple
 rename of the table files at the system level should get your data back.
 
 If you use `ALTER TABLE' on a transactional table or if you are using
 Windows or OS/2, `ALTER TABLE' unlocks the table if you had done a
 `LOCK TABLE' on it. This is done because `InnoDB' and these operating
 systems cannot drop a table that is in use.
 
Info Catalog (mysql.info) table-definition-issues (mysql.info) table-definition-issues (mysql.info) change-column-order
automatically generated byinfo2html