复制一个MySQL表,索引和数据
如何复制/克隆/复制一个MySQL表的数据,结构和索引到一个新的?
这是我迄今为止发现的。
这将复制数据和结构,但不是索引:
create table {new_table} select * from {old_table};
这将复制结构和索引,但不复制数据:
create table {new_table} like {old_table};
要使用索引和触发器进行复制,请执行以下2个查询:
CREATE TABLE newtable LIKE oldtable; INSERT newtable SELECT * FROM oldtable;
复制只是结构和数据使用这一个:
CREATE TABLE tbl_new AS SELECT * FROM tbl_old;
我之前问过这个问题:
复制包含索引的MySQL表
除了上面的解决scheme之外,您可以使用AS
将它在一行中。
CREATE TABLE tbl_new AS SELECT * FROM tbl_old;
我发现了相同的情况,我采取的方法如下:1.执行SHOW CREATE TABLE:这将为您要克隆的表提供Create Table语法2.通过更改表名称来运行CREATE TABLE查询克隆表。
这将创build您想要与索引一起克隆的表的确切副本。 你唯一需要的是重新命名索引(如果需要的话)。
MySQL的方式
CREATE TABLE recipes_new LIKE production.recipes; INSERT recipes_new SELECT * FROM production.recipes;
以上尝试了解决scheme之后。 我想出了我自己的方式。
我的解决scheme有点手动,需要DBMS。
首先导出数据。
第二次打开导出数据。
用新的表名replace旧的表名。
第四更改数据中的所有触发器名称(我使用mysql,当我不更改触发器名称时显示错误)
第五步将编辑后的sql数据导入到数据库中。
转到phpMyAdmin并select您的原始表,然后select“ 复制表到(database.table) ”区域中的“ 操作 ”选项卡select要复制的数据库,并为您的新表添加一个名称。 复制表 – phyMyAdmin截图
对于MySQL
CREATE TABLE newtable LIKE oldtable ; INSERT newtable SELECT * FROM oldtable ;
对于MSSQL使用MyDatabase
:
Select * into newCustomersTable from oldCustomersTable;
这个SQL用于复制表,这里oldCustomersTable的内容将被复制到newCustomersTable
。
确保数据库中不存在newCustomersTable
。