Ich habe zwei Tabellen, sagen A und B. Beide haben eine Primärschlüssel-ID. Sie haben eine Viele-zu-Viele-Beziehung, SEC.Sqlalchemy: sekundäre Beziehung Update
SEC = Table('sec', Base.metadata,
Column('a_id', Integer, ForeignKey('A.id'), primary_key=True, nullable=False),
Column('b_id', Integer, ForeignKey('B.id'), primary_key=True, nullable=False)
)
class A():
...
id = Column(Integer, primary_key=True)
...
rels = relationship(B, secondary=SEC)
class B():
...
id = Column(Integer, primary_key=True)
...
Betrachten wir dieses Stück Code.
a = A()
b1 = B()
b2 = B()
a.rels = [b1, b2]
...
#some place later
b3 = B()
a.rels = [b1, b3] # errors sometimes
Manchmal bekomme ich einen Fehler in der letzten Zeile
duplicate key value violates unique constraint a_b_pkey
In meinem Verständnis zu sagen, ich glaube, es versucht (a.id, b.id) in ‚s‘ Tabelle wieder hinzufügen was zu einem eindeutigen Beschränkungsfehler führt. Ist es das, was es ist? Wenn ja, wie kann ich das vermeiden? Wenn nicht, warum habe ich diesen Fehler?
Ich bin mir nicht wirklich sicher warum.Ich muss es richtig testen und werde es euch wissen lassen. Danke für die Hilfe. – Sri