簡體   English   中英

為什么在將 UPDATE 函數與 SQLAlchemy 一起使用時出現錯誤?

[英]Why am I getting an error when using the UPDATE function with SQLAlchemy?

我有以下代碼:

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 代碼,它運行良好。 為什么會發生這種情況?

您應該只執行查詢,而不是嘗試將結果讀入數據框中,因為UPDATE查詢沒有結果。

SQLQuery="UPDATE Players SET [Player Name] = REPLACE(REPLACE([Player Name], 'Christian', 'Chris') , 'Reece', 'John')"  
sqlcon.execute(SQLQuery)

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 等,還有其他可能的語法和樣式。

暫無
暫無

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

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