2016-08-24 166 views
0

我有兩個表,我想將信息從一個表添加到另一個表,但表具有相同的行。將值從一個表複製到另一個表中

INSERT INTO wp_posts ( 
     id, 
     post_author, 
     post_content, 
     post_title, 
     post_name, 
     post_type 
      ) 
SELECT id, 
     3, 
     post_content, 
     post_title, 
     post_name, 
     post_type 
FROM wp_posts2 
WHERE post_type='Vacancy' 

所以我得到錯誤

[Err] 1062 - Duplicate entry '7142' for key 'PRIMARY' 

我怎麼能只添加新行?

+0

你怎麼想發生在重複的行?你想保留舊內容,還是用新內容替換它? – Barmar

回答

0

僅獲得新的ID:

INSERT INTO wp_posts ( 
     id, 
     post_author, 
     post_content, 
     post_title, 
     post_name, 
     post_type 
      ) 
SELECT id, 
     3, 
     post_content, 
     post_title, 
     post_name, 
     post_type 
FROM wp_posts2 
WHERE post_type='Vacancy' 
and id not in (select id from wp_posts) 
0

在我看來,在表wp_posts id是主鍵,wp_posts2有ID相同的值(一個或多個)。這就是它拋出錯誤的原因。

如果id是AUTO_INCREMENT領域,那麼你不應該需要在查詢中包括「ID」,如下所示:

INSERT INTO wp_posts ( 
    post_author, 
    post_content, 
    post_title, 
    post_name, 
    post_type 
     ) 
SELECT 
    3, 
    post_content, 
    post_title, 
    post_name, 
    post_type 
FROM wp_posts2 
WHERE post_type='Vacancy' 
相關問題