MySQL - 重命名表

MySQL - 重命名表 首页 / MySQL入门教程 / MySQL - 重命名表

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

以下是用于更改表名称的语法:

mysql> RENAME old_table TO new_table;

在这里,无涯教程必须确保 new_table_name 一定不存在,并且 old_table_name 应该存在于数据库中。否则,它将引发错误消息。这是为了确保在执行此语句之前,该表未锁定以及没有活动事务。

无涯教程还可以使用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语句在MySQL中的工作方式。假设有一个名为 EMPLOYEE 的表,由于某种原因,有必要将其更改为名为 CUSTOMER 的表。

表名:employee

MySQL Rename Table

接下来,执行以下语法来更改表名:

mysql> RENAME employee TO customer;

无涯教程将看到名为" employee"的表将被更改为新的表名为" customer"的表:

MySQL Rename Table

在上面的输出中,无涯教程可以看到,如果在执行RENAME TABLE语句后使用表名称employee,它将抛出一条错误消息。

如何重命名多个表

MySQL中的RENAME TABLE语句还允许无涯教程在单个语句中更改多个表名。请参阅以下语句:

假设数据库" myemployeedb "具有以下表格:

MySQL Rename Table

如果要将表名customer更改为employee,将表名shirts更改为clothes,请执行以下语句:

mysql> RENAME TABLE customer TO employee, shirts TO garments;

无涯教程可以看到,已将表名customer转换为employee,将表名衬衫转换为成衣已成功重命名。

MySQL Rename Table

使用ALTER语句重命名表

ALTER TABLE语句还可用于重命名当前数据库中的现有表。以下是ALTER TABLE语句的语法:

ALTER TABLE old_table_name RENAME TO new_table_name;

请参阅以下将现有表名garments更改为新表名shirts的查询:

mysql> ALTER TABLE garments RENAME TO shirts:

在这里,无涯教程可以看到表名的服装已重命名为表名的shirts。

MySQL Rename Table

如何重命名临时表

临时表允许无涯教程保留临时数据,该数据仅在当前会话中可见和可访问。因此,首先,无涯教程需要使用以下语句创建一个临时表:

无涯教程网

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 Rename Table

因此,MySQL允许ALTER table语句重命名临时表:

mysql> ALTER TABLE Students RENAME TO student_info;

输出

MySQL Rename Table

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

AI技术内参 -〔洪亮劼〕

零基础学Python -〔尹会生〕

重学前端 -〔程劭非(winter)〕

全栈工程师修炼指南 -〔熊燚(四火)〕

DevOps实战笔记 -〔石雪峰〕

后端存储实战课 -〔李玥〕

爆款文案修炼手册 -〔乐剑峰〕

零基础入门Spark -〔吴磊〕

互联网人的数字化企业生存指南 -〔沈欣〕

好记忆不如烂笔头。留下您的足迹吧 :)