【发布时间】:2017-08-01 16:19:16
【问题描述】:
我在 Postgresql 9.5 中创建一个表,其中 id 是主键。如果有人尝试插入重复的 id,则在表中插入行时,我希望它被忽略而不是引发异常。有没有什么方法可以让我在创建表时设置这个重复条目被忽略。
在编写插入查询时有许多技术可以解决重复插入问题,即使用 ON CONFLICT DO NOTHING 或使用 WHERE EXISTS 子句等。但我想在表创建结束时处理这个问题,以便编写插入查询的人不会需要打扰任何人。
创建规则是可能的解决方案之一。还有其他可能的解决方案吗?也许是这样的:
`CREATE TABLE dbo.foo (bar int PRIMARY KEY WITH (FILLFACTOR=90, IGNORE_DUP_KEY = ON))`
虽然这个语句在我的机器上的 Postgresql 9.5 上不起作用。
【问题讨论】:
-
AFAIK,没有这种可能性。我不希望插入数据的人员或进程在其数据被简单地忽略或丢弃时不以任何方式收到通知。
标签: postgresql