![](/img/trans.png)
[英]sqlalchemy session to create or update records with * to many relationships
[英]SQLAlchemy delete() records in session
以前有人問過這個問題,但我沒有找到一個可以幫助我實現我想做的事情的答案。 這是一個代碼示例
Session = sessionmaker(bind=db_engine, autoflush=False)
session = Session()
后來
session.query(StockPrices)\
.filter(StockPrices.date >= new_data_min_date)\
.filter(StockPrices.date <= new_data_max_date)\
.delete(synchronize_session='fetch')
session.flush()
之后我做了一個 pandas pd.read_sql(query.statement, session.bind)
與查詢有一個StockPrices
表上的語句。 不幸的是,我仍然可以取回已刪除的記錄。 大多數帖子說您應該commit()
將記錄放入數據庫。 然而,這不是我想要的。 我想要實現的是從 session 中獲取修改后的記錄(即表中的任何內容減去已刪除的記錄)以進行額外處理。 如您所料,稍后會有一個案例來決定是將整個事情commit()
作為原子操作還是rollback()
。 通過在delete()
之后提交,如果您稍后改變主意,您將失去回滾更改的能力。
除了在最終的 SQL 查詢之前在 pandas 土地上做所有事情之外,我有什么想法可以 go 關於它嗎?
謝謝!
刪除autoflush=False
以便在下次查詢之前自動刷新更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.