簡體   English   中英

SQLAlchemy delete() session 中的記錄

[英]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.

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