У меня есть таблица story_id
, как это.
Column | Type | Modifiers
--------------+---------+-------------------------------------------------------------------
id | integer | not null default nextval('story_sites_id_seq'::regclass)
story_id | integer | not null
site_id | integer | not null
Я хочу добавить новые строки с site_id = 12
и story_id
, которые уже имеют site_id = 70
, вот мой запрос, он работает хорошо:
INSERT INTO story_sites (story_id, site_id)
SELECT story_id, 12
FROM story_sites
WHERE site_id = 70;
Но еслиесть строки, в которых уже есть site_id = 12
, я получу ошибку дублирующего ключа.
Итак, я хочу исключить эти дублирующиеся строки, вот мой новый запрос, однако он не работает должным образом, онничего не вставляет, когда я думаю, что это должно.Также кажется, что я не могу использовать ON CONFLICT DO NOTHING
в Postgres 9.4.Как мне это сделать?
INSERT INTO story_sites (story_id, site_id)
SELECT story_id, 12
FROM story_sites
WHERE site_id = 70
AND NOT EXISTS
(
SELECT id
FROM story_sites
WHERE site_id = 12
);