我希望使用新的网站网址在Wordpress MySQL数据库中全局替换我网站网址的所有实例。为此,我使用phpMyAdmin将数据库导出到.sql文件,然后在文本编辑器中进行全局替换,然后使用phpMyAdmin导入.sql文件。
在导入期间,我遇到主键错误的重复条目。试图调试这个,我导出了文件,然后导入了相同的文件,没有做任何更改,我仍然得到同样的错误。
我感谢任何帮助解决这个问题。
--
-- Dumping data for table `wp_comments`
--
INSERT INTO `wp_comments`
(`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`
,`comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`
,`comment_content`, `comment_karma`, `comment_approved`, `comment_agent`
,`comment_type`, `comment_parent`, `user_id`)
VALUES (1, 1, 'Mr WordPress', ''
,'http://wordpress.org/', '', '2011-04-28 00:49:55', '2011-04-28 00:49:55'
,'Hi, this is a comment.<br />To delete a comment,
just log in and view the post's comments.
There you will have the option to edit or delete them.'
, 0, 'post-trashed', '', '', 0, 0 ) ;
MySQL said:
#1062 - Duplicate entry '1' for key 'PRIMARY'
答案 0 :(得分:6)
原始数据仍在数据库中。
如果您是手动工作,则会使用新值发送UPDATE
而不是INSERT
查询,但由于您正在进行批量导入,因此擦除现有内容可能更好在导入之前清理表。
DELETE FROM `tblName`;
请务必先备份您的数据。
答案 1 :(得分:2)
如果您要导出,则表示主要内容保留在数据库中。因此,当您尝试插入具有相同PRIMARY KEY的新行时,它们总是独一无二的,您将收到错误。
解决方案:您必须从表中删除具有相同comment_ID的行。 您必须打开PHPMyAdmin并转到表格页面,然后检查包含所需ID的行。在这种情况下是1,这意味着它可能在您的表列表的第一个结果页面中。只需点击行中显示的红色X.
这也可以通过SQL来完成,这也很简单。
DELETE FROM `wp_comments` WHERE `comment_ID` = 1 LIMIT 1
为此,只需在PHPMyAdmin中选择数据库并转到SQL选项卡,然后在文本区域中插入上面的代码。
答案 2 :(得分:2)
为避免重复,您必须使用UPDATE而不是INSERT语句。要在phpMyAdmin中实现此目的,请按照下列步骤操作:
你准备好了!要检查一切是否正常,请第二次搜索数据库(重复步骤2)。您不应该找到任何包含旧字符串的表。
答案 3 :(得分:1)
有同样的问题和错误号。删除数据库,重新创建没有表,并导入为我工作的已更改导出文件。
答案 4 :(得分:1)
问题与您的文件有关 - 您正在尝试使用副本创建数据库 - 在文件顶部您会看到如下内容:
创建数据库,如果不是EXISTS *THE_NAME_OF_YOUR_DB*
默认字符集latin1 COLLATE latin1_general_ci;
使用*THE_NAME_OF_YOUR_DB*
;
并且我确定你已经拥有一个具有此名称的数据库 - 在同一台服务器中 - 请检查,因为你试图覆盖!!只需更改名称或(更好)删除此行!
答案 5 :(得分:0)
由于您已经拥有该记录,因此您只需更新记录而不是插入记录。它会像这样。
UPDATE `wp_comments`
SET 'comment_author_url' = 'YOUR NEW ADDRESS'
WHERE `comment_ID` = 1
使用此方法更新旧地址的每个实例。您可以通过说“在哪里评论_author_url'='您的旧地址'”来搜索所有帖子。
答案 6 :(得分:0)
如果您要做的只是替换您的网址,我相信这就是您必须做的一切:
Update `wp_comments` Set
`comment_author_url` = 'http://wordpress.org/'
Where `comment_author` = 'Mr WordPress'
只需在PHPMyAdmin的SQL框中键入上述SQL并执行。
注意:首先确保您有备份。并且没有必要做所有导出和导入的东西:)
答案 7 :(得分:0)
将代码更改为
INSERT .... (what you already have)
ON DUPLICATE KEY UPDATE;
这样可以轻松解决您的问题,同时仍插入新行。