MySQL 复制表结构和数据详解与示例

MySQL 复制或克隆表是一项功能,允许我们为现有表创建复制表,包括表结构、索引、约束、默认值等。将现有表的数据复制到新表中非常有用。

我们可以使用CREATE TABLE和SELECT语句将现有表复制到新表,如下所示:

CREATE TABLE new_table_name

SELECT column1, column2, column3

FROM existing_table_name;

CREATE TABLE 语句会根据SELECT语句的结果集创建新的表结构,然后 MySQL 将从 SELECT 语句获取的数据填充到新创建的表中。

如果只需要将现有表中的部分数据复制到新表中,请使用WHERE 子句使用 SELECT 语句,如下所示:

CREATE TABLE new_table_name

SELECT column1, column2, column3

FROM existing_table_name

WHERE condition;

需要注意的是,以上语句只是复制表和数据。不会复制表所依赖的对象,例如索引、触发器、主键约束、外键约束等。

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。仅仅使用CREATE TABLE … SELECT 命令,是无法实现的。我们可以参考以下两种方式实现表和数据的完全复制。

完全复制表方法一

步骤一:根据现有表直接创建复制表。

CREATE TABLE IF NOT EXISTS new_table_name LIKE existing_table_name;

步骤一:从现有表中选择数据插入复制表。

INSERT new_table_name SELECT * FROM existing_table_name;

完全复制表方法二

使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。

复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。

如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。

步骤一:获取数据表的完整结构。

步骤二:修改SQL语句的数据表名,并执行SQL语句。

步骤三:执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 INSERT INTO… SELECT 语句来实现。

执行以上步骤后,会完整的复制表的内容,包括表结构及表数据。

相关文章