1
A
和B
之間存在多對多關係。在SQLAlchemy中的任何父項不再引用時自動刪除子對象
a_b_relation= sa.Table('a_b_relation', _Base.metadata,
sa.Column('a_oid', sa.Integer, sa.ForeignKey('A.oid')),
sa.Column('b_oid', sa.Integer, sa.ForeignKey('B.oid'))
)
class A(_Base):
__tablename__ = 'A'
_oid = sa.Column('oid', sa.Integer, primary_key=True)
_bbb = sao.relationship('B', secondary=a_b_relation)
class B(_Base):
__tablename__ = 'B'
_oid = sa.Column('oid', sa.Integer, primary_key=True)
的B
實例可以被許多A
實例引用。 但是,當沒有參考時,B
應該被自動刪除。 問題是A
實例沒有被刪除!他們只是修改那裏的關係B
的另一個實例。
有沒有SQLAlchemy的方法來做到這一點?或者我必須自己檢查一下嗎?
我明白了。所以答案將是我必須自己處理它,因爲沒有任何SQLA或SQL機制可以完成工作。但是使用SQLA事件處理程序(就像在你鏈接的其他問題中一樣)可以幫助解決這個問題。 – buhtz
您認爲如何使用reference-counters讓實例/行知道它不再被引用? – buhtz