MySQL 复制表的详细说明及案例:

1. 复制表结构

使用 CREATE TABLE ... LIKE 语句可以复制表结构,但不复制数据。

语法:

CREATE TABLE 新表名 LIKE 原表名;

案例:

CREATE TABLE new_table LIKE old_table;

2. 复制表结构及数据

使用 CREATE TABLE ... AS SELECT 语句可以复制表结构及数据。

语法:

CREATE TABLE 新表名 AS SELECT * FROM 原表名;

案例:

CREATE TABLE new_table AS SELECT * FROM old_table;

3. 复制部分数据

可以在 SELECT 语句中添加条件,只复制部分数据。

案例:

CREATE TABLE new_table AS SELECT * FROM old_table WHERE condition;

4. 复制表结构并重命名列

可以在 SELECT 语句中重命名列。

案例:

CREATE TABLE new_table AS SELECT column1 AS new_column1, column2 AS new_column2 FROM old_table;

5. 复制表结构并添加新列

可以在 SELECT 语句中添加新列。

案例:

CREATE TABLE new_table AS SELECT *, 'default_value' AS new_column FROM old_table;

6. 复制表结构并修改列类型

可以在 SELECT 语句中使用 CASTCONVERT 函数修改列类型。

案例:

CREATE TABLE new_table AS SELECT column1, CAST(column2 AS CHAR) AS new_column2 FROM old_table;

7. 复制表结构并删除列

可以在 SELECT 语句中排除某些列。

案例:

CREATE TABLE new_table AS SELECT column1, column3 FROM old_table;

8. 复制表结构并添加索引

复制表结构后,可以使用 ALTER TABLE 语句添加索引。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ADD INDEX (column1);

9. 复制表结构并修改存储引擎

复制表结构后,可以使用 ALTER TABLE 语句修改存储引擎。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ENGINE = InnoDB;

10. 复制表结构并修改字符集

复制表结构后,可以使用 ALTER TABLE 语句修改字符集。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

11. 复制表结构并修改表注释

复制表结构后,可以使用 ALTER TABLE 语句修改表注释。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table COMMENT = 'New table comment';

12. 复制表结构并修改列注释

复制表结构后,可以使用 ALTER TABLE 语句修改列注释。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table MODIFY column1 INT COMMENT 'New column comment';

13. 复制表结构并修改列默认值

复制表结构后,可以使用 ALTER TABLE 语句修改列默认值。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table ALTER column1 SET DEFAULT 'new_default_value';

14. 复制表结构并修改列顺序

复制表结构后,可以使用 ALTER TABLE 语句修改列顺序。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table MODIFY column1 INT AFTER column2;

15. 复制表结构并修改列属性

复制表结构后,可以使用 ALTER TABLE 语句修改列属性。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table MODIFY column1 INT UNSIGNED;

16. 复制表结构并修改表选项

复制表结构后,可以使用 ALTER TABLE 语句修改表选项。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table AUTO_INCREMENT = 100;

17. 复制表结构并修改表分区

复制表结构后,可以使用 ALTER TABLE 语句修改表分区。

案例:

CREATE TABLE new_table LIKE old_table;
ALTER TABLE new_table PARTITION BY RANGE (column1) (
    PARTITION p0 VALUES LESS THAN (100),
    PARTITION p1 VALUES LESS THAN (200)
);

18. 复制表结构并修改

本篇文章内容来源于:MySQL 复制表详细说明以及案例