我正在使用Postgres,NodeJS和Knex。
我有以下情况:
在NodeJS中我有一个对象数组,我需要:
一个。如果表不包含唯一ID,则插入新行,或
湾如果表确实包含唯一ID,则更新其余字段。
据我所知,我有三种选择:
通过我所知道的选项,upsert似乎是最合理的,但它有任何缺点吗?
答案 0 :(得分:1)
Upsert
是一种常见的方式。
另一种方法是使用单独的插入/更新操作,并且很可能会更快:
定义现有行
select id from t where id in (object-ids)
(*)
按(*)结果
按(*)过滤数组并批量插入新行。
查看同一问题here
的详细信息