复制表mysql

时间:2015-02-12 07:20:17

标签: php sql

我是sql advance的新手,我试图通过从另一个表中选择来向一个表插入行。但是有些bug正在出现。

这是我的问题 所以我有两张桌子

table1 having id(autoincrement), names
table2 having id(autoincrement), names

现在开始时table1为空,table2有2行

1,'myself'
2,'yourself'

所以问题从这里开始了 当我执行以下查询

Insert into table1 (names) select (names) from table2

所以现在必须将table2的两行都复制到table1 雅工作正常。
但是id的自动增量值怎么样? 到目前为止,table1 autoincrement id应该存储3,因为要插入的下一行应该有id 3

但它没有像预期的那样工作,因此table1 autoincrement id存储4,1(current id value)+2*(no of rows inserted)-1 所以下次当我执行相同的查询时,它会插入一个id为4的行。跳过id = 3。 这个问题希望你们都能得到我所说的。

感谢您提前帮助。

3 个答案:

答案 0 :(得分:0)

试试这个 INSERT INTO TABLE1 SELECT * FROM TABLE2

答案 1 :(得分:0)

继续复制您的数据,然后您可以将起始auto_inc修改为您选择的任何内容。

ALTER TABLE table AUTO_INCREMENT = 1000;

答案 2 :(得分:0)

更改表将花费大约1秒,因为它首先创建表的阴影然后处理查询,如果没有。然后,桌子的行数会超过20-30秒。所以我不认为改变是这个问题的好答案。希望有人会帮助你插入命令,如: 插入table1 set id = 1;等...