DELETE 语句与 REFERENCE 约束冲突

时间:2021-04-20 11:07:21

标签: python sqlalchemy sql-delete cascade

我有一组由以下定义的模型:

from app import db

class SKU(db.Model):
    __tablename__ = 'sku'
    id = db.Column(db.Integer, primary_key=True)
    sku_store_sales = db.relationship('SKUStoreSales', cascade='all, delete')

class Store(db.Model):
    __tablename__ = 'sku'
    id = db.Column(db.Integer, primary_key=True)
    sku_store_sales = db.relationship('SKUStoreSales', cascade='all, delete')

class SKUStoreSales(db.Model):
    __tablename__ = 'sku_store_sales'
    id = db.Column(db.Integer, primary_key=True)
    sku_id = db.Column(db.Integer, db.ForeignKey('sku.id'))
    store_id = db.Column(db.Integer, db.ForeignKey('store.id'))
    quantity = db.Column(db.Integer, nullable=False)

但是,当我尝试删除 SKU 对象时,出现以下错误:

The DELETE statement conflicted with the REFERENCE constraint "FK__sku_store__sku_i__01D345B0". 
The conflict occurred in database "TEST", table "dbo.sku_store_sales", column 'sku_id'.

请问我哪里出错了?我认为通过在 cascade='all, delete'sku 表中添加 store 可以解决这个问题。

0 个答案:

没有答案