我需要将新ID从新表更改为旧表中的旧ID。
首先,我将这样的脚本编写到了mySQL上(如我之前所想,它使用唯一名称Title来更改ID:
UPDATE wp_posts, j256_k2_items
SET wp_posts.id = j256_k2_items.id
WHERE wp_posts.post_title = j256_k2_items.title
但是这给了我一个错误,我发现有些文章的名称是重复的。因此,我找到了另一个“唯一”名称-日期,然后将代码修改为:
UPDATE
wp_posts,
j256_k2_items
REPLACE
wp_posts.ID = j256_k2_items.id
WHERE
wp_posts.post_title = j256_k2_items.title AND wp_posts.post_date = j256_k2_items.created
它给了我#1062-键“ PRIMARY”的重复条目。所以我用谷歌搜索并修改了如此糟糕的代码,完成了一半的工作(更改了一些ID):
UPDATE IGNORE
wp_posts,
j256_k2_items
REPLACE
wp_posts.ID = j256_k2_items.id
WHERE
wp_posts.post_title = j256_k2_items.title AND wp_posts.post_date = j256_k2_items.created
这仅交换了一些文章(可能是一半)。如何交换它们并克服这个Dublicate错误?我有一个不好的主意,将其导出到csv并进行VLOOKUP,然后进行导入,但是我相信有一个优雅的解决方案...
非常感谢