Diciamo che ho due modelliSQLAlchemy consentire null come 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')
posso creare nuovo documento con NULL ENTITY_ID. Ma una volta che ho impostato entity_id valido su quel documento non posso più negarlo. Ottengo l'errore:
Cannot add or update a child row: a foreign key constraint fails
Come si possono impostare null per ENTITY_ID in qualche documento, se ha ENTITY_ID valida?
Questo è possibile. Il punto che stavo cercando di fare nella mia risposta è che davvero non dovresti farlo. Avere un tasto NULL è essenzialmente un record orfano. Aggiunge la gestione in seguito e quasi sempre richiede la pulizia. JMHO. – rfportilla