python-3.x - 连接池 sqlalchemy 总是返回一个缓存的结果
问题描述
我使用以下代码创建连接池并运行 SQL 查询。
engine = sqlalchemy.create_engine(
f'mysql+pymysql://{usr}:{pw}@{db_config["host"]}:{db_config["port"]}/'
f'{sub_db}', pool_size=24, max_overflow=40, poolclass=pool.QueuePool)
connection = engine.connect()
pandas.read_sql(sql=my_query, con=connection)
但是,我发现我创建的连接有时会返回缓存的数据库返回:
例如,我运行 SQL 函数validatePW
来验证基于 DB 表的令牌。我有两个用户:A和B使用不同的密码。用户A的密码是“PW1”。如果我跑步pandas.read_sql(sql="select validatePW('A', 'PW1')", con=connection)
,我True
会得到预期的回报。如果我第一次运行pandas.read_sql(sql="select validatePW('B', 'PW1')", con=connection)
,我会得到一个False
回报(B的密码不是'PW1')。
现在如果我顺序运行这两个查询,结果会变得很有趣
pd.read_sql(sql="select validatePW('A', 'PW1')", con=connection)
pd.read_sql(sql="select validatePW('B', 'PW1')", con=connection)
我会得到两个True
回报,尽管我希望第二个查询会返回一个False
. 似乎连接正在返回上次运行的缓存结果。这是为什么?有没有办法避免呢?谢谢
解决方案
推荐阅读
- safari - jPlayer 的最新 Safari 浏览器问题
- java - 使用 Stream() 删除小数点,而不是使用 for 循环
- javascript - 如何在chartjs上格式化左侧图例
- c# - 使用不存在的模型实体返回结果 - EF .net Core 3
- python - 如何按 DatetimeIndex 加入列,从不同年份的数据中匹配日、月和小时?
- javascript - 将 imagesloaded.js 与从文件夹导入图像的 php 代码一起使用
- runtime-error - Anylogic - 绘制动画帧时出错
- redux-form - FieldArray 的每个元素中有 2 个字段,但 fields.get(index) 无法获取第二个字段
- c - 有没有办法在运行时命令不要在 C(Linux)中调用特定函数(将其注释掉)?
- swift - SwiftUI:在 NavigationLink 或 Sheet 中显示时,使用 Apple 按钮登录会使应用程序崩溃