gpt4 book ai didi

javascript - Sequelize 添加主键以隐式查询

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

我正在使用 sequelize-typescript,它隐式地将主键列添加到所有创建查询中,这是一个问题,因为我不想自己设置此 ID(IDENTITY_INSERT 设置为 OFF)。

@Table({
timestamps: false,
})
class Table extends Model<Table> {
@PrimaryKey
@Column
MyId: string;
@Column
column: string;
}
table.create({column: 'value'});

这以查询结束:
sql: 'INSERT INTO [Table] ([MyId],[column]) OUTPUT INSERTED.* VALUES (NULL,'value');'

和错误:
SequelizeDatabaseError: DEFAULT or NULL are not allowed as explicit identity values.

我需要得到的查询是:
INSERT INTO [Table] ([column]) OUTPUT INSERTED.* VALUES ('value');

任何帮助深表感谢!

最佳答案

首先 - 删除 @PrimaryKey 装饰器。
将模型添加到 Sequelize 实例后,请执行以下操作:

Table.removeAttribute('id');

现在 id 不会添加到查询中,但将用于在 select 方法中进行排序,因此通过以下方式设置您自己的顺序:
Table.findAll({where: {column: 'value'}, order: ['MyId']});

当然,使用这意味着您的数据库知道哪一列是主键并自行增加它。

关于javascript - Sequelize 添加主键以隐式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52592718/

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