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

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

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

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

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

create table {new_table} like {old_table};

当前回答

MySQL方式:

CREATE TABLE recipes_new LIKE production.recipes;
INSERT recipes_new SELECT * FROM production.recipes;

其他回答

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

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

首先,导出数据。

第二,打开导出数据。

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

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

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

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

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表

要复制表及其结构,而不从其他数据库复制数据,请使用此选项。关于新的数据库sql类型

创建表格currentdatabase.tablename与旧数据库.tablename相似

试试看:

`CREATE TABLE new-table (id INT(11) auto_increment primary key) SELECT old-table.name, old-table.group, old-table.floor, old-table.age from old-table;`

我从旧表中选择了4列,并制作了一个新表。

除了上面的解决方案之外,您可以使用AS将其集成到一条线上。

CREATE TABLE tbl_new AS SELECT * FROM tbl_old;