任何人都可以帮助解决 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
它不会插入记录 - 那么我的语法有什么问题吗?
最佳答案
试试这个:
WHERE (22398, 13621) NOT IN (SELECT manor_id, place_id FROM domes_manor_place)
顺便说一句,更好的方法是对这对列使用唯一约束。如果行已存在,这将导致插入失败。
关于sql - Postgres : WHERE. .. AND语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554916/