相关疑难解决方法(0)

Sqlalchemy:次要关系更新

我有两个表,比如A和B.两个都有一个主键ID.他们有多对多的关系,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) 
   ...
Run Code Online (Sandbox Code Playgroud)

让我们考虑一下这段代码.

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

有时,我在最后一行说错了

duplicate key value violates unique constraint a_b_pkey
Run Code Online (Sandbox Code Playgroud)

在我的理解中,我认为它试图再次将(a.id,b.id)添加到'sec'表中,从而导致唯一的约束错误.这是什么?如果是这样,我该如何避免这种情况?如果没有,为什么我会有这个错误?

python postgresql orm sqlalchemy relationship

9
推荐指数
2
解决办法
4015
查看次数

标签 统计

orm ×1

postgresql ×1

python ×1

relationship ×1

sqlalchemy ×1