【问题标题】:bulkCreate records using sequelize in nodejs在nodejs中使用sequelize批量创建记录
【发布时间】:2015-07-16 13:25:13
【问题描述】:

任何方式进行批量更新,使用 sequelize 和 postgres 创建?

我尝试了以下方法:

   sequelize.models.Location.bulkCreate(updatedPost.locations,
 { ignoreDuplicates: true }).then(function (locations) {
                            res.send(updatedPost);
                            res.end();
                        });

我收到了这个错误:

postgres 不支持 'ignoreDuplicates' 选项。

【问题讨论】:

  • 避免传递ignoreDuplicates :)。 postgres 不支持此操作所需的 sql 语法。如果要更新任何现有行,则可以改用updateOnDuplicate - 否则如果有重复,您将不得不忍受错误
  • updateOnDuplicate is also not supported 不幸的是,如果有可能出错,您不能使用 sequelize:postgres 批量创建。 .then() 将无法到达(而不是 .catch().finally()),因此您无法继续查询承诺链。我认为失败后的任何插入都会停止。

标签: node.js postgresql sequelize.js


【解决方案1】:

INSERT ... ON CONFLICT DO NOTHING/UPDATE 现在在 Postgres 上。他们有really good documentation。所以你可以做 Sequelize.query() 来做到这一点。 但很抱歉,Sequelize 仍然不原生支持它。你必须在你的模型上写一个方法来做到这一点。

【讨论】:

    猜你喜欢
    • 2018-05-11
    • 2013-12-16
    • 2022-10-16
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2022-09-28
    相关资源
    最近更新 更多