如何复制、克隆或复制数据、结构、,并将MySQL表的索引转换为新表?

这是我到目前为止发现的。

这将复制数据和结构,但不包括指数:

create table {new_table} select * from {old_table};

这将复制结构和索引,但不包括数据:

create table {new_table} like {old_table};

当前回答

转到phpMyAdmin并选择原始表,然后在“复制表到(database.table)”区域中选择“操作”选项卡。选择要复制的数据库并为新表添加名称。

其他回答

我发现了同样的情况,我采取的方法如下:

执行SHOW CREATE TABLE<TABLE name to clone>:这将为您提供要克隆的表的CREATE TABLE语法通过更改表名来克隆表,从而运行CREATE TABLE查询。

这将创建要与索引一起克隆的表的精确副本。然后,您只需要重命名索引(如果需要)。

要使用索引和触发器进行复制,请执行以下两个查询:

CREATE TABLE new_table LIKE old_table; 
INSERT INTO new_table SELECT * FROM old_table;

要仅复制结构和数据,请使用以下方法:

CREATE TABLE new_table AS SELECT * FROM old_table;

我以前问过这个问题:

复制包含索引的MySQL表

要创建表结构,请仅使用以下代码:

CREATE TABLE new_table LIKE current_table; 

要将数据从表复制到另一个表,请使用以下代码:

INSERT INTO new_table SELECT * FROM current_table;

在我尝试了上面的解决方案后,我想出了自己的方法。

我的解决方案有点手动,需要DBMS。

首先,导出数据。

第二,打开导出数据。

第三,用新表名替换旧表名。

第四,更改数据中的所有触发器名称(我使用MySQL,不更改触发器名称时会显示错误)。

第五,将编辑的SQL数据导入数据库。

简单克隆:它从另一个表创建一个表,而不考虑任何列属性和索引。

CREATE TABLE new_table SELECT * FROM original_table;

浅层克隆:这将仅基于原始表的结构创建一个空表

CREATE TABLE new_table LIKE original_table;

以下命令将在原始表的基础上创建一个空表。

CREATE TABLE adminUsers LIKE users;

深度克隆:这意味着新表将具有现有表的每列和索引的所有属性。如果要维护现有表的索引和属性,这非常有用。

CREATE TABLE new_table LIKE original_table;

INSERT INTO new_table SELECT * FROM original_table;

https://towardsdatascience.com/how-to-clone-tables-in-sql-dd29586ec89c