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
原文地址:https://www.cnblogs.com/shangwei/p/14415382.html