【问题标题】:Get id of inserted row from upsert (insertOrUpdate) Sequelize Node.js从 upsert (insertOrUpdate) Sequelize Node.js 获取插入行的 id
【发布时间】:2016-10-10 08:24:27
【问题描述】:

我正在创建一个 REST API。 我想实现一个无能的 PUT 操作,它可以创建或更新数据库中的特定资源。

我正在使用 node.js、postgreSQL 和 sequelize。 问题是 sequelize upsert 返回 truefalse 取决于资源是更新还是创建。

但如果资源被创建,我需要能够将唯一标识符(列 ID)发送回客户端。

我尝试过的一个解决方案是通过在 sequelize findOne 查询的“where”属性中指定从客户端发送的每一列来尝试找到完全相同的资源。但是,如果客户端发送不在数据库中的其他列,则会引发错误。在我的实现中不应该是这种情况。

可以实现吗?最好没有一些性能开销。 谢谢

【问题讨论】:

    标签: javascript node.js postgresql sequelize.js


    【解决方案1】:

    目前无法在 Sequelize 中从 upsert 取回 ID。更多信息请见:https://github.com/sequelize/sequelize/issues/3354

    此问题的一个可能解决方案是强制用户(或本例中的 REST API 客户端)在请求更新时提供记录的 ID,并且在创建新记录时不提供 ID .这通常是一个好主意,因为它可以防止往返数据库,但它会使您的 API 更加严格。

    【讨论】:

      猜你喜欢
      • 2017-01-16
      • 2013-05-19
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 2016-09-29
      相关资源
      最近更新 更多