【发布时间】:2016-03-16 14:35:13
【问题描述】:
给定
=> select * from referenced;
referenced_id | name
---------------+-------
1 | one
2 | two
3 | three
和
=> select * from entries;
entry_id | referenced_id | name
----------+---------------+------------------
1 | 3 | references three
其中referenced_id 和entry_id 是主键。
我想要一个 entries 的插入语句,如果 entry_id 已经存在或引用的项目不存在,它会跳过插入。第一个很容易做到:
INSERT INTO entries
VALUES (1, 2, 'references two')
ON CONFLICT (entry_id) DO NOTHING;
是否也可以在这里检查外键是否存在?
【问题讨论】:
标签: sql postgresql sql-insert upsert postgresql-9.5