MySQL 的Rename Table語句

weixin_34037977發表於2011-12-08

mysql 命令重新命名錶RENAME TABLE 句法

RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO
new_tbl_name2,...]
更名是以原子方式(atomically)執行,這就意味著,當更名正在執行時,其它的任何執行緒均不能該表。這使得以一個空表替換一個表成為可能。

CREATE TABLE new_table (...);
 

RENAME TABLE old_table TO backup_table, new_table TO old_table;
改名是從左到右執行的,這就意味著,如果你希望交換兩個表名,你不得不這樣做:

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 中被加入

相關文章