我在postgres 9.3之上使用sql alchemy编写了大量代码。在检查记录尚不存在之后,我经常需要插入。为此,我执行以下操作
c = session.query(ClassName).filter(ClassName.id=new.id).count()
if c==0:
session.add(new)
session.commit()
这有点乏味。有没有办法设置sql alchemy + postgres来自动处理该检查?我不一定在postgres中寻找一个独特的索引(如果记录已经存在会抛出错误),而不是一个“添加”操作,它知道如果记录已存在该怎么办。
答案 0 :(得分:0)
为什么不定义自己的
“添加”操作,知道如果记录已经存在该怎么办。
def addIfNotExist(session, new):
if not c:
session.add(new)
session.commit()
else:
pass #put other code here if needed
addIfNotExist(session, new)
如果没有在id
上添加唯一索引,这是我能想到的最直接的事情,因为没有(据我所知)内置的做你想做的事情的方式