2016-08-24 7 views
0

2つのテーブルがあり、あるテーブルから別のテーブルに情報を追加したいが、テーブルには同じ行があります。WHEREを使用してテーブル間で値をコピーする

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' 
関連する問題