2017-08-24 143 views
0

我正在使用SQLAlchemy,我想刪除一對多關係中的某個項目。那麼有兩張照片給你。首先你可以看到一個EER模型。它的一個(性別)很多()關係。SQLAlchemy:如何刪除一對多關係上的項目?

enter image description here

其次,你可以看到虛構的數據表。在性別-表現我們有兩個性別,並在 - 表我們有三個人。 enter image description here

想象一下,你只要刪除一個性別,讓我們說'男性'。但是我們看到,'男'被人用作外地人-table。

我當前的源代碼如下:

class PERSON_GENDER(Base): 

    __tablename__ = "person_gender" 

    id = Column(Integer, primary_key=True, unique=True, autoincrement=True) 
    gender = Column(String(50), nullable=False, unique=True) 

class PERSON(Base): 

    __tablename__ = "person" 

    id = Column(Integer, primary_key=True, unique=True, autoincrement=True) 
    nickname = Column(String(255)) 
    alias_name = Column(String (255)) 
    name_normally_used = Column(String(50), nullable=False) 
    first_middle_name = Column(String(255)) 
    last_name = Column(String(100)) 
    birth_name = Column(String(100)) 
    body_height = Column(String(10)) 
    wedding_anniversary = Column(Date) 
    birthday = Column(Date) 
    day_of_death = Column(Date) 
    notice = Column(Text()) 

    gender_id = Column(Integer, ForeignKey('person_gender.id', ondelete='CASCADE')) 
    gender = relationship("PERSON_GENDER", single_parent=True, cascade="all, delete, delete-orphan") 

當我跑這一項,那麼不僅性別被刪除,而且此人。我希望只有性別被刪除,而不是人。

回答

1

ondelete ='CASCADE')=> ondelete ='SET NULL')

+0

TA。它工作正常。 – Sophus

相關問題