我正在尝试使用SQLAlchemy在我的数据库上执行级联删除。我有桌子(删除了不相关的字段):
action_permissions_to_groups = db.Table('action_permissions_to_groups',
db.Column('group_id', db.Integer, db.ForeignKey('group.id', ondelete='cascade')),
db.Column('action_permission_id', db.Integer, db.ForeignKey('action_permission.id', ondelete='cascade'))
)
class Group(db.Model, MyModel):
id = db.Column(db.Integer, primary_key=True)
action_permissions = db.relationship('ActionPermission', secondary=action_permissions_to_groups, cascade='delete')
class ActionPermission(db.Model, MyModel):
id = db.Column(db.Integer, primary_key=True)
在英语中,多个Groups
有多个ActionPermissions
。当我删除Group
时,我希望删除action_permissions_to_groups
表中与group_id
匹配的所有行的所有行。
当我尝试删除一个组时,上面的代码给出了以下错误:
InvalidRequestError:由于刷新期间的先前异常,此会话的事务已回滚。要使用此Session开始新事务,请首先发出Session.rollback()。原始异常是:表'action_permissions_to_groups'上的DELETE语句预计会删除11行;只有12人匹配。
有谁知道我做错了什么?
谢谢!