【问题标题】:How to modify Sequelize query to not send ID on row creation?如何修改 Sequelize 查询以在创建行时不发送 ID?
【发布时间】:2018-09-18 04:34:06
【问题描述】:

我想给一行一个主键,它是 Postgres 中的 UUID。我有 Postgres 端工作,默认设置为 generate_uuid_v4() 在我的主键上。如果我通过psql 手动发送 SQL,它就可以工作。但是,当我创建新行时,Sequelize 会发送值为 NULL 的 id。有没有办法阻止 Sequelize 这样做?

我也在使用带有sequelize-typescript 的 Sequelize,如果这与它有关的话。

这是正在发送的查询: INSERT INTO "User" ("id","firstName","lastName","middleInitial") VALUES (NULL,'Davis','Kimoto','S') RETURNING *; 设置为NULL的id值需要去掉。有没有办法告诉 Sequelize 永远不要设置或修改 id 值?

【问题讨论】:

  • 请分享型号代码

标签: node.js postgresql typescript sequelize.js


【解决方案1】:

尝试添加到你的模型defaultValue

defaultValue: sequelize.literal('uuid_generate_v4()')

【讨论】:

  • 这最终成为了这样做的方法,但有些东西将 id 发送为 NULL(您可以在上面的查询中看到)。我不知道这是由 vanilla Sequelize 还是 sequelize-typescript 完成的,我没有花时间去弄清楚。我为更新之前和创建之前编写了从查询中删除 id 的钩子,这似乎有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
相关资源
最近更新 更多