gpt4 book ai didi

sequelize.js - 复杂的销毁查询

转载 作者:行者123 更新时间:2023-12-03 22:37:45 24 4
gpt4 key购买 nike

我正在尝试想出一些代码(除了 RAW Sequelize 查询),这将允许我在一个事务/查询中删除给定模型的除 N 最新行之外的所有行。

我已经尝试了在 offset 方法中使用 orderModel.detroy 的天真方法。

Model.destroy({
order: ["createdAt", "DESC"],
offset: N,
where: {
parentModelId: someId,
}
})

What I expected is that the code above constructed a query such as:

```sql
DELETE FROM model WHERE "parentModelId" = 'someId' ORDER BY "createdAt" DESC OFFSET N;

相反,生成的查询是:

DELETE FROM model WHERE "parentModelId" = 'someId';

最佳答案

编辑:刚刚意识到问题不在于 Sequelize.js 本身,而在于 PostgreSQL 不允许这样的查询。实现此目的的适当方法是通过查询:

DELETE FROM models WHERE is IN (
SELECT id FROM models WHERE "parentModelId" = 'someId'
ORDER BY "createdAt" DESC
OFFSET N
);


不幸的是,在 Sequelize.js 中执行此操作的唯一方法是通过原始查询。 http://docs.sequelizejs.com/manual/raw-queries.html

关于sequelize.js - 复杂的销毁查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com