簡體   English   中英

python sqlalchemy不執行sql查詢

[英]python sqlalchemy not executing sql query

我正在使用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)

問題是你沒有提交你的交易。 根據您的配置,您需要將autocommit設置為True,或者在執行后提交您的事務(通常在需要回滾的多個事務中處理):

你可以在這里設置:

sessionmaker(bind=engine, autocommit=True)

要么:

session.commit()

sessionmaker()引用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM