我知道Sequelize sequelize doc不支持postgresQL的updateOnDuplicate,因此可以解决此问题吗?
可以通过“ SQL命令”实现。
答案 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"] })