sqlalchemy server_side_cursors模式不能重复执行

时间:2018-08-03 10:20:55

标签: python-3.x pandas sqlalchemy pymysql

当我通过sqlalchemy.create_engine(uri,server_side_cursors = True)创建引擎时,无法在服务器模式下重用该引擎,如下所示:

def test_mysql_search():
    uri = Const.mysql_URI
    engine = sqla.create_engine(uri, server_side_cursors=True)


    sql = "select 1 from z_voucher"
    df_g = pd.read_sql(sql, engine, chunksize=1)
    df = next(df_g)
    print(df)
    df = next(df_g)
    print(df)
    print('--------------------------------------------')
    sql2 = 'select * from AUDIT_BALANCE'
    df2 = pd.read_sql(sql2, engine, chunksize=1)
    df = next(df2)
    print(df)
    df = next(df2)
    print(df)

当我在上方或下方执行单独的截止线时,可能会很好。但是,当我全部执行时,它无法重用服务器模式。我应该关闭服务器端游标,但不关闭它。 我的数据库是Mysql,驱动程序是pymysql。

0 个答案:

没有答案