【问题标题】:Get inserted id of table in postgresql with sequelize raw query使用 sequelize raw 查询在 postgresql 中获取插入的表 ID
【发布时间】:2021-06-04 01:08:05
【问题描述】:

我确实有带有 sequelize 的 postgresql。 我需要在表中为插入语句获取新插入的 id。 (自动生成的id/pk)

postgreFunctionservice.insertSavedFilter = async (appId, filterName, filterString, filterForPage) => {
  const query = `INSERT INTO sometable
        (company_id, filter_name, saved_filters, filter_for_page)
        VALUES ('${appId}', '${filterName}', '${filterString}', '${filterForPage}')`;
  const result = await sequelizDB.query(query, { returning : true });

  return result;
};

正如我们所见,我使用原始查询进行插入。 我能够插入记录但没有插入 id。我做了很多研究,但发现注意到有用。 “续集”版本是“^6.3.5”。

任何帮助都会非常有用。

【问题讨论】:

    标签: node.js postgresql sequelize.js


    【解决方案1】:
      const query = `INSERT INTO sometable
            (company_id, filter_name, saved_filters, filter_for_page)
            VALUES ('${appId}', '${filterName}', '${filterString}', '${filterForPage}')`;
      const [id, ] = await sequelizDB.query(query, { returning : true });
    
      return id;
    

    【讨论】:

    【解决方案2】:

    对于 postgress,我需要在原始查询中包含 RETURNING id。

    postgreFunctionservice.insertSavedFilter = async (appId, filterName, filterString, filterForPage) => {
      const query = `INSERT INTO sometable
            (company_id, filter_name, saved_filters, filter_for_page)
            VALUES ('${appId}', '${filterName}', '${filterString}', '${filterForPage}') RETURNING ID`;
      const result = await sequelizDB.query(query, { returning : true });
    
      return result;
    };
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 2023-02-25
      • 2023-02-22
      • 2016-06-11
      • 2019-01-10
      • 2013-05-19
      • 2018-08-07
      • 2019-09-05
      • 2022-01-08
      相关资源
      最近更新 更多