Вот схема
CREATE TABLE instagram_posts (
post_id serial PRIMARY KEY,
user_id int REFERENCES instagram_users ON DELETE RESTRICT,
link TEXT UNIQUE,
caption TEXT,
num_likes int,
num_comments int,
exsits BOOLEAN NOT NULL DEFAULT TRUE);
И я бы попытался вызвать команду:
INSERT INTO instagram_posts (link,num_likes,user_id) VALUES (%s,%s,(SELECT user_id from instagram_users WHERE user_account=%s)) ON CONFLICT (post_id, link) DO UPDATE SET num_likes=EXCLUDED.num_likes,user_id=EXCLUDED.user_id;
, которая дает мне Ошибка: нет уникального или исключающего ограничения соответствие спецификации ON CONFLICT
Запрос работает, если я включаю только post_id в качестве ограничения или включаю только ссылку в качестве ограничения (ie ON CONFLICT (post_id) или ON CONFLICT (ссылка)), но не оба. Я не могу придумать причину, почему это так. Кто-нибудь знает почему?