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同时交换两个表名内容请搜索编程宝库以前的文章,希望以后支持编程宝库!
最近无意中接触到了一篇文章,里面写了一个SQL的用法,是with...as。用MySQL试了一下,发现并不支持该语法(版本:5.7)于是换作以下(版本:8.0)不会报错:总结一下with的用法,类 ...