Python SQLAlchemy不执行SQL查询。

6
我正在使用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)
1个回答

5
问题在于您没有提交事务。根据您的配置,您需要将自动提交设置为True,或在执行后提交事务(通常在涉及多个事务时需要回滚处理):
您可以在此处进行设置:
sessionmaker(bind=engine, autocommit=True)

或者:

session.commit()

关于sessionmaker()的参考:

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


感谢您的快速回答。第一个建议没有起作用,但第二个解决了问题! - Dendrobates
太好了,我很高兴能帮忙! - CodeLikeBeaker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接