SQLAlchemy使用merge

介绍

有一些场景需要我们即做添加操作有要做修改操作,我们就可以来使用 merge 来操作这里,一下代码就是查看 key 值是否一致,如果一致则进行修改,如果不一致则进行添加。

使用

    def loophole_proof(proof, company_name, pg_con=None):
        try:
            pg_con = pg_con if pg_con else g.pg_db
            filesStore = pg_con.query(FilesStore).filter(
                and_(FilesStore.company_name == company_name, FilesStore.files_path == "1")).first()
            if not filesStore:
                # 如果数据库不存在, 重新new一个新对象
                filesStore = FilesStore()
                filesStore.company_name = company_name
                filesStore.files_path = "1"
            filesStore.files_name = proof
            pg_con.merge(filesStore)
            pg_con.commit()
            return True
        except Exception, e:
            logging.error('class path: %s;function name: %s;error message:%s' % (
                __name__, sys._getframe().f_code.co_name, e.message), exc_info=True)
            return False

 

posted @ 2021-02-19 11:43  你的小可爱吖  阅读(591)  评论(0编辑  收藏  举报