我尝试将列设置为外键,但出现错误
未处理的拒绝SequelizeForeignKeyConstraintError:MERGE语句与FOREIGN KEY约束“ FK__Wishlists__produ__03C67B1A”发生冲突。在数据库“数据库”,表“ dbo.posts”,列“ productid”中发生了冲突。
在productid
中,外键名称为cart_table
,在product_table
中,主键为productid
Cart.belongsTo(Product, {foreignKey: 'productid', targetKey: 'productid'});
这甚至是正确的方法吗?
场景:
我想通过将cart_table与product_table联接来操纵数据,这样结果将是:
购物车产品表:
username: alex
cart_table.productid: 01
product_table.productid: 01
productName: Shampoo
productPrice: 12
答案 0 :(得分:0)
根据您的情况,您正在进行Product
到Cart
的一对一映射。
您确实将购物车与产品相关联,
Cart.belongsTo(Product, {
foreignKey: 'productid',
targetKey: 'productid'
});
同样,您也必须将产品关联到购物车。
Product.belongsTo(Cart, {
foreignKey: 'productid',
sourceKey: 'productid'
});
答案 1 :(得分:0)
如评论中所述,由于您收到错误,因此购物车中有数据。
Cart.belongsTo(Product, {foreignKey: 'productid', targetKey: 'productid'});
以此更改此代码。
Cart.belongsTo(Product, {
foreignKey: 'productid',
targetKey: 'productid',
defaultValue : 0
});
您只需添加默认值