批量分配postgresQL创建updateOnDuplicate吗?

时间:2019-04-05 09:07:25

标签: node.js postgresql sequelize.js bulkinsert bulkupdate

我知道Sequelize sequelize doc不支持postgresQL的updateOnDuplicate,因此可以解决此问题吗?

可以通过“ SQL命令”实现。

2 个答案:

答案 0 :(得分:1)

有一些解决方法。请参见upsert函数。在Postgresql中使用时,它将在数据库中创建自定义函数。不幸的是,没有bulkUpsert,因此您可以在某些for循环中使用它,也可以按照建议的here执行原始SQL。

答案 1 :(得分:0)

新续集(v5)包括所有方言的updateOnDuplicate功能

  

如果行键已经存在(在重复键更新时)要更新的字段?   (仅受MySQL,MariaDB,SQLite> = 3.24.0和Postgres> =支持   9.5)。默认情况下,所有字段都会更新。

在这里检查:Docs

您可以用作

model.bulkCreate(dataToUpdate, { updateOnDuplicate: ["user_id", "token", "created_at"] })