2017-05-03 17 views
0

私は2つの列を持つdatabaswを持っています。 最初はカテゴリID、2番目はグループIDです。 どちらもプライマリです。 と私はグループID 1と、私はすべてのカテゴリをグループ1,2,3同じIDと異なる第二のIDを持つテーブル行にSQLを追加

INSERT INTO `ps_category_group` (`id_category`, `id_group`) 
SELECT `id_category`, 2 FROM (
    SELECT DISTINCT `id_category`,`id_group` From `ps_category_group`) as x; 

を持っている必要があります意味2. と同じカテゴリIDにテーブルにいくつかの行を追加する必要があることは私に

を与えます

1062 - キー「PRIMARY」の重複エントリ「2-2」

+0

任意の自動インクリメント値に与えられる特別な言及して、私達にあなたのテーブルの構造についての詳細を教えてくれたり、新しいを見つけることについては移動する方法してください新しいレコードの主キー値。 – toonice

答えて

0

あなたは、テーブルに挿入するために、同じテーブルから値を選択しています。次に、主キーの違反を取得している理由を質問していますか?もちろんそうですね;それはまさにあなたの質問がやっていることです。

説明に基づいて、あなたが望むように見える:

INSERT INTO `ps_category_group` (`id_category`, `id_group`) 
    SELECT `id_category`, 2 
    FROM `ps_category_group` 
    ON DUPLICATE KEY UPDATE id_category = VALUES(id_category); -- This does nothing if the value already exists in the table 
+0

速い返答をありがとう。私はSQLを使い慣れていない。あなたのコードは '#1052 - カラム 'id_category' in field listがあいまいです。エラーです。 – YourSelf

+0

うわー、ありがとう。出来た。 – YourSelf

関連する問題