美文网首页
【MySQL5】重命名表

【MySQL5】重命名表

作者: 马克约瑟 | 来源:发表于2019-03-02 22:58 被阅读0次

MySQL5中,可以使用rename table对表进行重命名,语法如下:

rename table
    tbl_name to new_tbl_name
    [, tbl_name2 to new_tbl_name2] ...

rename table可以对一个或多个表进行重命名。不过,对原表你必须要有alterdrop权限,对新表必须要有createinsert权限。

例如,将表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;

相关文章

网友评论

      本文标题:【MySQL5】重命名表

      本文链接:https://www.haomeiwen.com/subject/junyuqtx.html