如果在MySQL中直接使用如下select into的SQL,会有报错:

select * into t2 from t1;

如果直接是表与表之间的拷贝,那么可以使用create table语句来完成:

Create table t2 (Select * from t1);

这里create table是实现两个表的结构完全一致,而且拷贝过去的数据单行记录也完全一致(主是自动增长键的问题)。如果我们需要将原表的数据做一些调整后加入到新表中。那么最佳的实现应该是:

1、第一步将t1表的结构导出,然后用它创建一个t2表。

2、使用insert into语句,且指明操作的字段。

insert into t2(k,v) (select k,v from t1)

如果t1表和t2表原本还有一个id字段,那么这么做的好处是id会实现自动增长。否则使用insert into时不能插入自动增长的id字段。

03-14 16:18