zoukankan      html  css  js  c++  java
  • 使用pymysql进行定时查询数据不更新的原因及解决方式

    用python写了一个小脚本定时查询数据库,输出查询结果并写入文件,发现每次查询的结果都是相同的,但是数据库确实在更新数据。

    原因:  

    REPEATABLE READ
    The default isolation level for InnoDB. It prevents any rows that are queried from being
    changed by other transactions, thus blocking non-repeatable reads but not phantom reads.
    It uses a moderately strict locking strategy so that all queries within a transaction see
    data from the same snapshot, that is, the data as it was at the time the transaction started.

    重复读

    innodb的默认隔离级别。它防止查询的任何行

    由其他事务更改,因此阻止不可重复的读取,但不阻止幻象读取。

    它使用适度严格的锁定策略,以便事务中的所有查询都可以看到

    来自同一快照的数据,即事务启动时的数据。

    既然知道了原因是查询事务未更新导致的 那就解决一下呗:

      每次查询后更新一下事务,在execute(sql) 之后 进行 commit()操作

      

      

  • 相关阅读:
    BZOJ 1500 维修数列
    BZOJ 1501 智慧珠游戏
    BZOJ 1507 Editor
    BZOJ 3223 文艺平衡树
    BZOJ 3224 普通平衡树
    BZOJ 3196 二逼平衡树
    BZOJ 1048 分割矩阵
    BZOJ 1047 理想的正方形
    BZOJ 1046 上升序列
    BZOJ 1045 糖果传递
  • 原文地址:https://www.cnblogs.com/wangbaojun/p/11505540.html
Copyright © 2011-2022 走看看