- 使用 SHOW CREATE TABLE 语句获取原表的创建语句:
SHOW CREATE TABLE 原表名;
将 原表名
替换为要复制的原始表的名称。
此语句将返回一个包含原表完整创建语句的结果集。创建语句包括表的结构、列定义、索引、约束、主键等所有信息。
- 复制结果集中的创建语句,并将表名替换为新表名:
CREATE TABLE 新表名 (-- 将创建语句中的列定义、索引、约束、主键等信息粘贴到这里
);
将 新表名
替换为你想要创建的新表的名称,并将创建语句中的所有内容(除了开头的 “CREATE TABLE 原表名
”)粘贴到括号内。
注意:如果有索引和约束,记得把索引和约束的名称改一下,不然会重复。
- 使用 INSERT INTO … SELECT 语句将原表的数据复制到新表中:
INSERT INTO 新表名 SELECT * FROM 原表名;
将 新表名
替换为创建的新表的名称,将 原表名
替换为原始表的名称。
通过执行这三个步骤,可以创建一个与原表结构完全相同的新表,包括索引、约束、主键等信息,并将原表的所有数据复制到新表中。
例如,假设要将 my_table
表复制到一个名为 my_table_backup
的新表中,可以使用以下SQL语句:
-- 步骤 1
SHOW CREATE TABLE my_table;-- 步骤 2
CREATE TABLE my_table_backup (-- 将创建语句中的列定义、索引、约束、主键等信息粘贴到这里。-- 如果有索引和约束,记得把索引和约束的名称改一下,不然会重复。
);-- 步骤 3
INSERT INTO my_table_backup SELECT * FROM my_table;