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;
网友评论