解决mysql导入上的重复主键

时间:2012-03-07 23:26:34

标签: mysql wordpress import phpmyadmin primary-key

我希望将一个WordPress网站的评论表附加到另一个。用户不同。当我将评论从站点B导入A时,我遇到了一个重复的密钥问题; comment_id已被采用。

那么如何解决这个问题并在表中添加一个简单的.sql文件呢?我是否必须获取用户信息,生成新用户,检查站点B上的评论,提取内容和postID,然后返回站点A并为新创建的用户重新创建评论!?

多么头疼!感谢。

1 个答案:

答案 0 :(得分:0)

如果你唯一的问题是重复的密钥问题,请在之后转到sql文件的末尾 ENGINE=MyISAM 并使它 ENGINE=MyISAM AutoIncrement=a nubmer above the last id in the new database

查询最后一个id的数据库A,然后添加一个并在新的插入查询中使用它。

示例1:

CREATE TABLE IF NOT EXISTS `movies` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `year` int(4) NOT NULL,
  `size` varchar(255) NOT NULL,
  `added` date NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `title` (`title`,`year`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

我转储的插入内容:

INSERT INTO `movies` (`title`, `year`, `size`, `added`) VALUES
('[REC] 2', 0, '716688', '2011-09-23'),
('5 Days of War', 0, '1435406', '2012-01-09'),
('[REC]', 0, '1353420800', '2011-11-06');

查看我在我的包含中未包含PRIMARY KEY (id)的方式,但仍会检查我的UNIQUE KEY并查看标题是否存在。只是一个小小的演示,希望有所帮助。如果您的表已经存在于新数据库中,那么只需跳过插入并且不包括主键,它将在新插入时自动设置为下一个可用值。