2
我有一大組值V,其中一些可能存在於表T中。我想在表中插入那些尚未插入的值。到目前爲止,我的代碼是:使用SQLAlchemy批量選擇
for value in values:
s = self.conn.execute(mytable.__table__.select(mytable.value == value)).first()
if not s:
to_insert.append(value)
我覺得這樣的運行速度比應該慢。我有幾個相關的問題:
- 有沒有一種方法來構建一個select語句,這樣你提供一個列表(在這種情況下,「價值」),其與SQLAlchemy的匹配列表,它記錄的響應?
- 這段代碼在構造select對象時過於昂貴嗎?有沒有辦法構造單個select語句,然後在執行時進行參數化?
嗯,我喜歡這個主意;一個問題是,我認爲價值太大,最大限度地減少了這種說法。我需要製作一張中間桌子嗎? – muckabout 2010-03-13 15:14:57
如果數據來自數據庫,那麼您可以在數據庫中完全執行該操作。但是,如果沒有,您可以通過切片值列表輕鬆地對每1000個項目進行批量處理。:)不需要從本地已有的東西創建臨時表。 – Wolph 2010-03-13 15:20:38
好點,那有效! – muckabout 2010-03-13 16:54:37