問題描述 -使用默認值SQLAlchemy批量插入缺失值
我想使用SQLAlchemy批量插入幾百行。該模式看起來像下面
all_scrips_tbl = Table('all_scrips_info', _METADATA, Column('security_isin', String(16), primary_key=True), Column('company_name', String(80)), Column('nse_traded', Boolean, default=False), Column('nse_start_date', Date, default=datetime.date(year=2001, day=1, month=1)), Column('bse_traded', Boolean, default=False), Column('bse_start_date', Date, default=datetime.date(year=2001, day=1, month=1)), )
現在每個憑證可以是 - nse_traded=True
,bse_traded=True
或兩者nse_traded=True and bse_traded=True
所以,我必須插入語句一樣 -
對於只有nse_traded=True
ins = t.insert().values(security_isin=nstock.isin, company_name=nstock.name, nse_traded=True, nse_start_date=nstart_date, )
對於只有bse_traded=True
-
ins = t.insert().values(security_isin=bstock.isin, company_name=bstock.name, bse_traded=True, bse_start_date=bstart_date)
,並相應地爲nse_traded=True
和bse_traded=True
我想批量插入這些語句。因此,像values().compile
從創建語句的默認值是非常有用的,這樣我就可以使用下面 -
conn.execute(all_scrips_info.insert() , [ {}, {} ])
凡類型的字典進行填充默認爲合適?
我也看過this的問題,但這與我的要求稍有不同。有一個old question on google groups這與我的要求相似。但是,sqlalchemy版本比較老,加上答案不是很容易理解。
我是否錯過了一些非常明顯的東西?
我是否理解正確,你必須在有三組記錄的數據集: (1) nse_traded,(2)bse_traded和(3)nse_traded和bse_traded,並且您想批量插入這些記錄? –
是的,這是正確的 - 我也默認定義(如適用)。我在做什麼,現在是使用'values'產生'insert'報表和像'執行(插入)'循環運行它們。我想用'執行(插入,[{},{}])'這裏的時候我不'insert.values'明確地使用它們使用默認值。 – gabhijit