Cela est nécessaire lorsque vous souhaitez saisir des informations sur la relation parent-enfant des données dans la base de données. Par exemple, un hôtel peut avoir plusieurs chambres liées, ou un service peut être associé à plusieurs plans.
Les points importants sont les deux points suivants.
session.add(parent_record) #Enregistrer une transaction
session.fluhs() #Enregistré dans DB (non enregistré)
parent_id = parent_record.id #Obtenir l'ID parent
Au moment de session.add (enregistrement), l'ID des données parent n'a pas été attribué, il ne peut donc pas être obtenu. En faisant session.flush (), l'ID parent sera donné et vous pourrez l'obtenir.
session.add(parent_record)
session.commit() #Enregistré dans DB (enregistré)
parent_id = parent_record.id #Obtenir l'ID parent
Il peut être stocké dans la base de données avec session.commit () et peut être obtenu car l'ID parent est attribué. Cependant, comme la restauration mentionnée au point important 2 ne peut pas être effectuée, si le stockage échoue avec des données enfants, une situation se produira dans laquelle seules les données parentes sont stockées, ce qui prend du temps et des efforts lors de l'enregistrement des données enfants. Je vais finir. (Par exemple, attribuer manuellement un ID parent) Si possible, les insertions seront plus efficaces si les données parent et enfant sont validées dans la même session.
Recommended Posts