2017-06-03 84 views
0

我從drupal輸入帖子到WP,我也想要類別和標籤,當我運行腳本時,它導入所有的東西,但不是類別和標籤,我得到這個錯誤:1062爲'PRIMARY'鍵重複輸入'234'

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); 

Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '234' for key 'PRIMARY'

我放下node_term表,但它並沒有幫助。

+1

https://stackoverflow.com/search?q=1062+Duplicate+entry –

+0

看起來也許在'wp_term_taxonomy'表的唯一約束被侵犯。檢查您的數據和表定義。 –

+0

我檢查了很多其他問題,但我仍然不明白。我試圖重新上傳數據庫和該表,但它沒有幫助 – Vidal

回答

0

您明確插入了已經在表中的值 - 或者,您的查詢的值爲主鍵的值「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); 
+0

非常感謝你<3 – Vidal

相關問題