SQL在具有相同id和不同第二个id的表行中添加

时间:2017-05-03 12:11:21

标签: mysql sql

我有一个有两列的数据库。 第一个是类别ID,第二个是组ID。 两者都是主要的。 我需要在表中添加一个具有组ID 1和2的行的相同类别ID。 我的意思是所有类别都需要有1,2,3组

    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;

给了我

  

1062 - 重复录入' 2-2'对于关键' PRIMARY'

1 个答案:

答案 0 :(得分: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