RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
名前の変更は原子的に実行されます。つまり、テーブル名が変更されている間、他のスレッドからはこれらのテーブルのいずれにもアクセスできなくなります。それによって、テーブルを空のテーブルと置換することが可能になります。
:
CREATE TABLE new_table (...); RENAME TABLE old_table TO backup_table, new_table TO old_table;
名前の変更は左から右へ実行されるため、2 つのテーブルの名前を交換する場合は、次のように記述する必要があります。
RENAME TABLE old_table TO backup_table,
new_table TO old_table,
backup_table TO new_table;
データベース名を変更することもできますが、その場合は、変更後のデータベースが変更前のデータベースと同じディスク上に存在していなければなりません。
RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
ロックされたテーブルやアクティブなトランザクションがあると、RENAME は実行できません。また、元のテーブルに対する ALTER 権限と DROP 権限、新しいテーブルに対する CREATE 権限と INSERT 権限が必要です。
MySQL で複数テーブルの名前の変更時にエラーが発生した場合、名前を変更されたすべてのテーブルに対して逆方向の名前の変更処理が行われ、すべてが元の状態に戻されます。
RENAME TABLE は MySQL 3.23.23 で追加されました。

























