我正在将Drupal中的帖子导入到WP,并且我也希望在运行脚本时也具有类别和标签,它导入所有内容,但不导入类别和标签,并且出现此错误:

Query:

INSERT INTO wordpress.wp_term_taxonomy (term_taxonomy_id, term_id, taxonomy, description, parent)
SELECT DISTINCT
    d.tid, d.tid 'term_id', 'post_tag', d.description 'description',
    h.parent 'parent'
FROM drupal.term_data d
INNER JOIN drupal.term_hierarchy h USING(tid)
INNER JOIN drupal.term_node n USING(tid)
WHERE (1);



  错误:SQLSTATE [23000]:违反完整性约束:1062键“ PRIMARY”的条目“ 234”重复


我删除了node_term表,但没有帮助。

最佳答案

您显然要插入表中已经存在的值,或者您的查询的主键两次具有“ 234”值。

您可以通过执行单独的子查询来检查第二个条件:

select pk, count(*)
from (<your select here>) t
group by pk
having count(*) > 1;


您可以使用INSERT IGNOREON DUPLICATE KEY UPDATE解决这两个问题。我更喜欢后者:

INSERT INTO wordpress.wp_term_taxonomy (term_taxonomy_id, term_id, taxonomy, description, parent)
    SELECT DISTINCT d.tid, d.tid, 'post_tag', d.description,h.parent
    FROM drupal.term_data d INNER JOIN
         drupal.term_hierarchy h USING( tid) INNER JOIN
         drupal.term_node n USING( tid)
    WHERE (1)
    ON DUPLICATE KEY UPDATE term_taxonomy_id = VALUES(term_taxonomy_id);

关于mysql - 1062键“PRIMARY”的条目“234”重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44343161/

10-11 06:15