Скажем, у меня есть две моделиSQLAlchemy позволяют нуль, как ForeignKey
class EntityModel(DB.Model):
id = DB.Column(DB.Unicode(37), primary_key=True)
class DocumentModel(DB.Model):
id = DB.Column(DB.Unicode(37), primary_key=True)
entity_id = DB.Column(DB.Unicode(37), DB.ForeignKey('entity.id', ondelete='cascade'), nullable=True)
entity = DB.relationship('EntityModel')
я могу создать новый документ с ENTITY_ID NULL. Но как только я установил действительный entity_id в этот документ, я больше не могу его вернуть. Я получаю сообщение об ошибке:
Cannot add or update a child row: a foreign key constraint fails
Как я могу установить нуль для ENTITY_ID в некотором документе, если он имеет действительный ENTITY_ID?
Это возможно. То, что я пытался сделать в своем ответе, состоит в том, что вы действительно не должны этого делать. Наличие ключа NULL по существу является сиротской записью. Он добавляет управление позже и почти всегда требует очистки. JMHO. – rfportilla