我有以下代碼:
SQLQuery="UPDATE Players SET [Player Name] = REPLACE(REPLACE([Player Name], 'Christian', 'Chris') , 'Reece', 'John')"
df = pd.read_sql(SQLQuery, sqlcon)
但是,當我運行代碼時,出現以下錯誤:
ResourceClosedError: This result object does not return rows. It has been closed automatically.
我在 SSMS 中運行了相同的 SQL 代碼,它運行良好。為什么會發生這種情況?
uj5u.com熱心網友回復:
您應該只執行查詢,而不是嘗試將結果讀入資料框中,因為查詢沒有結果UPDATE。
SQLQuery="UPDATE Players SET [Player Name] = REPLACE(REPLACE([Player Name], 'Christian', 'Chris') , 'Reece', 'John')"
sqlcon.execute(SQLQuery)
uj5u.com熱心網友回復:
pd.read_sql 旨在從 sql 資料庫中檢索資料,您的查詢正在嘗試在資料庫中進行更新。
為了進行簡單的更新,您可以使用 SQLAlchemy 執行,從檔案中,語法如下:
from sqlalchemy import text
with engine.connect() as connection:
result = connection.execute(text("select username from users"))
for row in result:
print("username:", row['username'])
如果您使用例如 ORM 等,還有其他可能的語法和樣式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/492341.html
標籤:Python sql sqlalchemy
