Code: Select all
from sqlalchemy.orm import (
Column,
Integer,
ForeignKey,
)
from sqlalchemy.orm import relationship
class Parent(Base):
__tablename__ = 'parent'
# columns
id = Column(Integer, primary_key=True)
# relationships
children = relationship('Child', back_populates='parent')
class Child(Base):
__tablename__ = 'child'
# columns
id = Column(Integer, primary_key=True)
parent_id = (Integer, ForeignKey('parent.id', ondelete='cascade'))
# relationships
parent = relationship('Parent', back_populates='children')
< /code>
Ich erstelle beide Objekte, füge zur Sitzung hinzu und spüle: < /p>
parent = Parent()
child = Child()
parent.children.append(child)
session.add(child)
session.flush()
< /code>
Schließlich lösche ich das untergeordnete Objekt: < /p>
session.delete(child)
session.flush()
< /code>
Alle relevanten SQL -Anweisungen werden gespült; Sowohl die ersten Einsätze als auch die nachfolgenden Löschen. Das untergeordnete Objekt ist jedoch weiterhin angehängt. Nur Session.commit ()