在做自动化时,批量执行case的时候,遇到过数据一直没有刷新的问题,导致查询的结果一直不对,但是单个执行这个case,查询结果是正确的,原因是,之前数据库有相同的会话,并没有关闭,所以再次查找时,都是之前的数据。
解决方案:
一、添加刷新语句:
在执行要查询的sql前,先执行一遍刷新,如:
c = self.dbcd.cursor()
flush_sql = ‘flush query cache’;
c.execute(flush_sql)
再执行要操作的sql语句
二、添加commit语句:
在每次执行sql语句后,要执行一次commit语句,如:
cursor.execute(sql)
db.commit()
这样以后每次查询后都会先commit一次,就不会出现上述问题