gpt4 book ai didi

postgresql - Sequelize 重复键约束冲突

转载 作者:行者123 更新时间:2023-11-29 13:21:25 28 4
gpt4 key购买 nike

我正在尝试使用 Sequelize 和 Postgresql 通过显式创建的联结表添加多对多关系。

关系两边的表是这样关联的:

Shop.belongsToMany(models.user, {through: 'visits' })
User.belongsToMany(models.shop, {through: 'visits' })

访问联结表主键定义如下:

id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true // Automatically gets converted to SERIAL for postgres
}

当我尝试插入访问时,出现以下错误:

ERROR:  duplicate key value violates unique constraint "visits_shopId_userId_key"
DETAIL: Key ("shopId", "userId")=(1, 12) already exists.

执行 pg_dump 后,我尝试通过向模型添加 constraint: false 来移除复合键约束,但我仍然遇到错误。

(我在调试过程中多次删除表并重新同步)

最佳答案

围绕 Sequelize issues 挖掘之后, 事实证明,移除 N:M 组合键的约束是一个简单的修复。

through key 可以接受具有unique: false 属性的对象:

Shop.belongsToMany(models.user, {
through: {
model: 'visits',
unique: false
},
constraints: false
});

关于postgresql - Sequelize 重复键约束冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40913959/

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