为 postgresQL 序列化批量创建 updateOnDuplicate?

Mel*_*des 5 postgresql bulkinsert node.js sequelize.js bulkupdate

我知道 Sequelize Sequelize doc不支持 postgresQL 的 updateOnDuplicate ,那么有解决这个问题的方法吗?

可以通过“SQL命令”来实现吗?

小智 5

新的sequelize (v5) 包括适用于所有方言的updateOnDuplicate 功能

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

检查这里:文档

您可以用作

model.bulkCreate(dataToUpdate, { updateOnDuplicate: ["user_id", "token", "created_at"] })
Run Code Online (Sandbox Code Playgroud)


saw*_*wim 2

有一些解决办法。请参阅upsert函数。当在 Postgresql 中使用时,它会在数据库中创建自定义函数。不幸的是没有bulkUpsert,所以您要么在某些 for 循环中使用它,要么按照此处的建议执行原始 SQL 。