MySQL5中,可以使用rename table对表进行重命名,语法如下:
rename table
tbl_name to new_tbl_name
[, tbl_name2 to new_tbl_name2] ...
rename table可以对一个或多个表进行重命名。不过,对原表你必须要有alter和drop权限,对新表必须要有create和insert权限。
例如,将表old_table重命名为new_table,可以使用如下语句:
rename table old_table to new_table;
其实相当于alter table语句:
alter table old_table rename new_table;
不同的是,alter table无法一个语句重命名多个表,但是rename table可以:
rename table old_table1 to new_table1,
old_table2 to new_table2,
old_table3 to new_table3;
重命名操作都是从左到右执行的,于是,我们可以这样交换两个表的名字:
rename table old_table to tmp_table,
new_table to old_table,
tmp_table to new_table;
为了要执行rename table,事务或表必须没有被lock tables锁住。在满足事务表锁定条件的情况下,重命名操作以原子方式完成;在重命名正在进行时,没有其他会话可以访问任何表。
如果rename table时有任何错误发生,那么该语句失败,并且没有任何改变。
我们还可以使用rename table将一个表移到另一个数据库里:
rename table current_db.tbl_name to other_db.tbl_name;







网友评论