如何仅将尚未在数据库中的记录保存到数据库中?
·
问题:如何仅将尚未在数据库中的记录保存到数据库中?
我正在使用烧瓶,并开始将 SQLalchemy 用于我的数据库。我有一个庞大的字典列表,如下所示:
data = [{'id': '3242342342', 'name': 'sfsdfs fsdcd'},
{'id': '2131231221', 'name': 'sfsddddfs fsdcd'},
{'id': '3434343544', 'name': 'sfsfdgfddfs fsdcd'},
{'id': '5465443545', 'name': 'sfsiiiiiiidfs fsdcd'}]
我有这样的课:
class Record(db.Model):
id = db.Column(db.String(20), primary_key=True)
name = db.Column(db.String(50))
我的任务是处理来自data的所有记录,如果它们不在数据库中,则添加它们,如果它们在则更新。这样做的正确方法是什么?谢谢
解答
合并功能就是你想要的。
http://docs.sqlalchemy.org/en/latest/orm/session_state_management.html#unitofwork-merging
for elem in data:
tmp = Record(id=elem['id'], name=['name'])
session.merge(tmp)
当然,稍后再提交。
更多推荐

所有评论(0)