Mysql如何同时交换两个表的表名详解

mysql同时交换两个表的表名

表重命名有两种方式,所以交换两表名也有两种方式:

1 .

lock tables t1 write ,t2 write;
alter table t1 rename to t3;
alter table t2 rename to t1;
alter table t3 rename to t2;
unlock tables;

2 .

rename table t1 to t3,t2 to t1,t2 to t3;

mysql命令rename:修改表名

rename命令用于修改表名。

rename命令格式:rename table 原表名 to 新表名;

例如,在表myclass名字更改为youclass:

    mysql> rename table myclass to youclass;

当你执行 rename 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 alter 和 drop 权限,以及对新表的 create 和 insert 权限。

如果在多表更名中,mysql 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。

rename table 在 mysql 3.23.23 中被加入。

重命名表方法

使用 rename table 语句或 alter table 语句都可以对表进行重命名,基本语法如下:

# rename table 语法:
rename table
    tbl_name to new_tbl_name
    [, tbl_name2 to new_tbl_name2] ...
    
# alter table 语法:
alter table old_table rename new_table;

# 具体示例:
mysql> show tables;
+------------------+
| tables_in_testdb |
+------------------+
| tb1              |
| tb2              |
+------------------+
2 rows in set (0.00 sec)

mysql> rename table tb1 to new_tb1;
query ok, 0 rows affected (0.03 sec)

mysql> alter table tb2 rename new_tb2;
query ok, 0 rows affected (0.04 sec)

mysql> show tables;
+------------------+
| tables_in_testdb |
+------------------+
| new_tb1          |
| new_tb2          |
+------------------+
2 rows in set (0.00 sec)

总结

到此这篇关于mysql如何同时交换两个表的表名的文章就介绍到这了,更多相关mysql同时交换两个表名内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐