![](/img/trans.png)
[英]How to execute multiple insert/update queries in one SQL using Python/SQLAlchemy and MSSQL?
[英]How to execute UPDATE query with SQLAlchemy SQL-builder in python?
如果具有sqlalchemy數據庫,並且要運行更新查詢。 我以為我可以使用與SELECT命令相同的方法。
這是我的代碼:
disk_engine = create_engine('sqlite:///test.db')
chunksize = 20000
j = 0
index_start = 1
for df in pd.read_csv('test.csv', chunksize=chunksize,
iterator=True, encoding='utf-8'):
df.index += index_start
j+=1
df.to_sql('data', disk_engine, if_exists='append')
index_start = df.index[-1] + 1
...
##NOW I WANT TO UPDATE A ROW
ts = pd.read_sql_query('UPDATE data SET score = ROUND(score,1)', disk_engine);
但這會引發錯誤:
_non_result中的result.pyc(默認值),如果self._metadata為None,則返回918:919 throw exc.ResourceClosedError(-> 920“此結果對象不返回行。” 921“它已自動關閉。”,922)
ResourceClosedError:此結果對象不返回行。 它已自動關閉。
如何正確更新數據庫?
如果確切的字符串UPDATE data SET score = ROUND(score,1)
是您要執行的字符串,則應該能夠從到disk_engine
的連接中執行該disk_engine
。 例如:
conn = disk_engine.connect()
result = conn.execute('UPDATE data SET score = ROUND(score,1)')
盡管我無法根據您的示例代碼確定更新語句是否/如何更改,所以這可能不是您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.