當前位置:成語大全網 - 書法字典 - sqlalchemy在做批量數據插入時需要註意什麽?有什麽可以優化的?

sqlalchemy在做批量數據插入時需要註意什麽?有什麽可以優化的?

比如重點都在筆記裏。

進口?sqlalchemy?作為?救世軍(Salvation Army)?性感(Sex Apple)?需經批準?有待批準(Subject to Approval)?半自動的(Semi-Automatic)?減震(Shock Attenuation)?表面面積(Surface Area)

#?以Sqlite為例,其他數據庫連接字符串是不同的。

發動機?=?sa.create_engine('sqlite://',?echo=True)

元數據?=?山。元數據()

#?假設這是壹個表結構。

widgets_table?=?山。表格(' widgets ',?元數據,

山。列(' id ',?山。整數,?primary_key=True),

山。列(' foo ',?山。字符串(50)),

山。列('欄',?山。字符串(50)),

山。列(' biz ',?山。布爾),

山。列(' baz ',?山。整數),

)

metadata.create_all(引擎)

#?假設這是妳的數據結構,每個元組都是壹個列表中的記錄。

價值觀?=?[

(無,?“測試”,?真的嗎?3),

(無,?“測試”,?真的嗎?3),

]

#?主要參考這部分如何批量插入。

用什麽?engine.connect()?作為?連接:

用什麽?connection.begin()?作為?交易:

嘗試:

馬克筆?=?','.加入('?'?*?len(值[0])

#?按段位數拼人?=?'(?,?,?,?)'

ins?=?插入?變成?{tablename}?價值觀?({markers})'

ins?=?ins . format(tablename = widgets _ table . name,?標記=標記)

#?如果您的表已經存在,只需更改widget _ table。表名的名稱。

連接.執行(ins,價值觀)

除了:

transaction.rollback()

上升

否則:

事務.提交()