使用自动增量值将一个表复制到mysql中的新表

时间:2014-07-31 02:30:24

标签: php mysql

我一直在尝试将我的表复制到新表中。我也能够做到这一点

如果我的表格如下所示,我解释说它是按照这两个命令复制的

CREATE TABLE feeds_new LIKE feed; INSERT INTO feeds_new SELECT * FROM feeds;

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  4 | penguin |
|  9 | lax     |
|  23| whale   |
|  24| ostrich |
+----+---------+

但我想这样。 我希望在feed_new中修复所有混乱的自动增量。

+----+---------+
| id | name    |
+----+---------+
|  1 | dog     |
|  2 | cat     |
|  3 | penguin |
|  4 | lax     |
|  5 | whale   |
|  6 | ostrich |
+----+---------+

我不想以同样的方式复制。

〜谢谢你〜

2 个答案:

答案 0 :(得分:1)

使用类似:

Create table feeds_new (
  id INT NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (id),
  name varchar(100)
) ENGINE=MyISAM 
  SELECT name FROM feeds;

在feedle上查看:http://sqlfiddle.com/#!2/70d80/1

答案 1 :(得分:1)

如果我没有错,那么您的主要关注点是修复/重置auto_increment表中的idfeeds_new并插入来自feeds表的数据。 在这种情况下,您只需重置auto_incrementid,如

ALTER TABLE feeds_new AUTO_INCREMENT = 1

然后像

一样插入其中
INSERT INTO feeds_new (name) SELECT name FROM feeds

旁注:这是我从你的帖子中理解的。评论它,如果确实不是这样的话。我必须删除/修改答案。