Tengo dos tablas, por ejemplo, A y B. Ambas tienen una identificación de clave principal. Tienen una relación de muchos a muchos, SEC.Sqlalchemy: actualización secundaria de relaciones
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)
...
Consideremos este fragmento de código.
a = A()
b1 = B()
b2 = B()
a.rels = [b1, b2]
...
#some place later
b3 = B()
a.rels = [b1, b3] # errors sometimes
A veces, me sale un error en la última línea que dice
duplicate key value violates unique constraint a_b_pkey
A mi entender, creo que intenta añadir (a.id, b.id) en la tabla 's' de nuevo lo que resulta en un error de restricción único. ¿Eso es lo que es? Si es así, ¿cómo puedo evitar esto? Si no, ¿por qué tengo este error?
No estoy muy seguro de por qué.Necesito probarlo correctamente y se lo haré saber. Gracias por la ayuda. – Sri