我有一个有2列的数据库。第一个是类别id,第二个是组id。两者都是首要的。我需要在表中添加到同一个类别id中,有些行包含组id 1和2。
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”
发布于 2017-05-03 12:14:19
您正在从同一个表中选择要插入到表中的值。那么,你是在问你为什么要得到主要的关键违规?当然,这正是您的查询所要做的。
根据描述,你似乎想:
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 tablehttps://stackoverflow.com/questions/43759702
复制相似问题