Может кто-нибудь помочь с проблемой синтаксиса Postgres?Я пытаюсь вставить запись, но перед этим проверьте, что она не существует, используя WHERE... AND
.
=# \d domes_manor_place;
id | integer | not null default nextval('domes_manor_place_id_seq'::regclass)
manor_id | integer | not null
place_id | integer | not null
=# select * from domes_manor_place where place_id='13621';
24017 | 22276 | 13621
ОК, поэтому мы знаем, что нет записей с manor_id=22398
и place_id=13621
.Давайте попробуем вставить его с помощью нашего синтаксиса WHERE ... AND:
=# INSERT INTO domes_manor_place (manor_id, place_id) SELECT 22398, 13621
WHERE (22398 NOT IN (SELECT manor_id FROM domes_manor_place)) AND
(13621 NOT IN (SELECT place_id FROM domes_manor_place));
INSERT 0 0
Он не вставит запись - так что не так с моим синтаксисом?