MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 重命名表

有时我们的表名没有意义,因此需要重命名或更改表名。 MySQL提供了一种有用的语法,可以重命名当前数据库中的一个或多个表。

语法

以下是用于更改表名称的语法:
mysql> RENAME old_table TO new_table;
在这里,我们必须确保 new_table_name 一定不存在,并且 old_table_name 应该存在于数据库中。否则,它将引发错误消息。在执行该语句之前,要确保该表没有被锁定以及没有活动的事务。
注意: 如果我们使用RENAME TABLE语句,则必须对现有表具有ALTER和DROP TABLE特权。另外,该语句不能更改临时表的名称。
我们还可以使用MySQL RENAME TABLE 语句通过一个语句更改多个表名,如下所示:
RENAME TABLE old_tab1 TO new_tab1,
             old_tab2 TO new_tab2, old_tab3 TO new_tab3; 
MySQL 8.0.13 版本开始,我们可以更改用LOCK语句锁定的旧表名称,也可以使用WRITE LOCK子句。例如,以下是有效的语句:
mysql> LOCK TABLE old_tab_name1 WRITE;
RENAME TABLE old_tab_name1 TO new_tab_name1,
             new_tab_name1 TO new_tab_name2;
以下声明不允许:
mysql> LOCK TABLE old_tab_name1 READ;
RENAME TABLE old_tab_name1 TO new_tab_name1,
             new_tab_name1 TO new_tab_name2;
在MySQL 8.0.13之前的版本中,我们无法更改用LOCK TABLE语句锁定的表名。
MySQL还使用RENAME TABLE语句将表从一个数据库移动到另一个数据库,如下所示:
mysql> RENAME TABLE current_db.tablel_name TO other_db.tablel_name;

MySQL RENAME TABLE示例

通过各种示例,让我们了解RENAME TABLE语句在MySQL中如何工作。假设我们有一个名为 EMPLOYEE 的表,由于某种原因,有必要将其更改为名为 CUSTOMER 的表。
表名: employee
MySQL重命名表
接下来,执行以下语法更改表名:
mysql> RENAME employee TO customer;
输出
我们将看到名为" employee"的表将被更改为新表名" customer":
MySQL重命名表
在上面的输出中,我们可以看到,如果在执行RENAME TABLE语句后使用表名employee,它将会引发错误消息。

如何重命名多个表

MySQL中的RENAME TABLE语句还允许我们在单个语句中更改多个表名。参见以下语句:
假设我们的数据库" myemployeedb "具有以下表格:
MySQL重命名表
如果要将表名customer更改为employee,将表名shirts更改为garments,请执行以下语句:
mysql> RENAME TABLE customer TO employee, shirts TO garments;
输出
我们可以看到已成功将customer重命名为employee,shirts重命名为garments。
MySQL重命名表

使用ALTER语句重命名表

ALTER TABLE语句也可以用于重命名当前数据库中的现有表。以下是ALTER TABLE语句的语法:
ALTER TABLE old_table_name RENAME TO new_table_name;
请参阅以下将现有表名garments更改为新表名shirts的查询:
mysql> ALTER TABLE garments RENAME TO shirts:
输出
在这里,我们可以看到表名garments已重命名为表名shirts。
MySQL重命名表

如何重命名临时表

临时表允许我们保留可见的临时数据并且只能在当前会话中访问。因此,首先,我们需要使用以下语句创建一个临时表:
mysql> CREATE TEMPORARY TABLE Students( name VARCHAR(40) NOT null, total_marks DECIMAL(12,2) NOT null default 0.00, total_subjects int UNSIGNED NOT null default 0);  
接下来,在表中插入值:
mysql> INSERT INTO Students(name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);
接下来,运行show table命令检查临时表:
mysql> SELECT * FROM Students;
现在,运行以下命令来更改临时表的名称:
mysql> RENAME TABLE Students TO student_info;
它将引发错误消息,如下所示:
MySQL重命名表
因此,MySQL允许ALTER table语句重命名临时表:
mysql> ALTER TABLE Students RENAME TO student_info;
输出
MySQL重命名表
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4