【问题标题】:python sqlalchemy not executing sql querypython sqlalchemy不执行sql查询
【发布时间】:2017-05-13 20:12:00
【问题描述】:

我正在使用 Python 和 sqlalchemy 来清空存储在 SQL Server 中的表。似乎在 session.execute 函数中作为参数给出的 SQL 查询根本不执行。该表仍然包含数据。

当我在 SQL Server MS 中打印并运行相同的查询时,它完全符合预期。

感谢您的帮助!

tableName = 'someTable'
engine = sqlalchemy.create_engine('connectionString')
Session = scoped_session(sessionmaker(bind=engine))
currentSession = Session()
query = 'IF ('
                       'EXISTS ('
                       'SELECT * FROM INFORMATION_SCHEMA.TABLES '
                       'WHERE TABLE_SCHEMA = \'dbo\' '
                       'AND TABLE_NAME = \'%s\')) '
                       'BEGIN '
                       'DELETE FROM [database].[dbo].[%s] '
                       'END' % (tableName,tableName)
session.execute(query)
print(query)

【问题讨论】:

    标签: python sql-server sqlalchemy


    【解决方案1】:

    问题是您没有提交交易。根据您的配置,您需要将 autocommit 设置为 True,或在执行后提交您的事务(通常在需要回滚的多个事务中处理):

    你可以在这里设置:

    sessionmaker(bind=engine, autocommit=True)
    

    或:

    session.commit()
    

    参考sessionmaker()

    http://docs.sqlalchemy.org/en/latest/orm/session_api.html

    【讨论】:

    • 感谢您的快速回答。第一个建议不起作用,但第二个解决了问题!
    • 太好了,很高兴能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2016-11-04
    • 2018-09-08
    • 2017-11-05
    • 2015-07-22
    • 2023-02-05
    • 1970-01-01
    相关资源
    最近更新 更多