Sqlalchemy: вторичное обновление отношений

У меня есть две таблицы, скажем, A и B. У обеих есть идентификатор первичного ключа. У них есть отношения многие ко многим, SEC.

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) 
   ...

Позволять'Рассмотрим этот кусок кода.

a = A()
b1 = B()
b2 = B()
a.rels = [b1, b2]
...
#some place later
b3 = B()
a.rels = [b1, b3]  # errors sometimes

Иногда в последней строке я получаю сообщение об ошибке

duplicate key value violates unique constraint a_b_pkey

В моем понимании, я думаю, что он пытается добавить (a.id, b.id) всек» таблица снова приводит к уникальной ошибке ограничения. Это то, что есть? Если так, как я могу избежать этого? Если нет, то почему у меня эта ошибка?

Ответы на вопрос(2)

Ваш ответ на вопрос