Sequelize:批量更新

pol*_*.ph 11 mysql node.js sequelize.js

我正在使用Node.js,MySQL和Sequelize.我想一次在表格中插入一些10k行.该表具有自定义primaryKey字段,即手动设置.数据从网上下载并重叠.

bulkCreate如果数据中的任何行具有表中已存在的唯一键,我希望有一个版本不会失败.这种事情是通过INSERT ... ON DUPLICATE KEY UPDATE构造在MySQL中完成的.

我怎么在Sequelize中做到这一点?

Yur*_*bin 14

将ignoreDuplicates设置为true,将options对象传递给bulkCreate

bulkCreate([...], { ignoreDuplicates: true })
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这仅是mysql,不适用于postgres (3认同)

Sea*_*ean 8

Yuri的回答将忽略重复...有一个选项updateOnDuplicate:

如果行密钥已存在则更新的字段(重复密钥更新时)?(仅由mysql和mariadb支持).默认情况下,所有字段都会更新.

http://docs.sequelizejs.com/en/latest/api/model/#bulkcreaterecords-options-promisearrayinstance