我有一张桌子
CREATE TABLE foo
(
f0 int,
time_stamp timestamp,
CONSTRAINT foo_pk PRIMARY KEY (f0)
)
我需要大量写入此表,因此性能是关键。有时,我会写一条具有现有值的记录,f0
并将其更新time_stamp
为当前时间。为此,我使用了一个ON CONFLICT..DO UPDATE
子句。
问题是我需要知道是INSERT
发生了还是UPDATE
.
我虽然使用第二is_update
列。插入时,插入false
并
`ON CONFLICT .. DO UPDATE set is_update=true`
然后用RETURNING is_update
得到我想要的。问题在于引入了与数据本身无关的附加列。