1. 程式人生 > >sqlalchemy批量增加資料的方法

sqlalchemy批量增加資料的方法

import sqlalchemy as sa

# Sqlite做例子,別的資料庫連線字串不同
engine = sa.create_engine('sqlite://', echo=True)
metadata = sa.MetaData()

# 假定這個是表結構
widgets_table = sa.Table('widgets', metadata,
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('foo', sa.String(50)),
sa.Column('bar', sa.String(50)),
sa.Column('biz'
, sa.Boolean), sa.Column('baz', sa.Integer), ) metadata.create_all(engine) # 假定這是你的資料結構,在一個list中每個元組是一條記錄 values = [ (None, "Test", True, 3), (None, "Test", True, 3), ] # 主要是參考這部分如何批量插入 with engine.connect() as connection: with connection.begin() as transaction: try: markers = ','
.join('?' * len(values[0])) # 按段數拼成makers = '(?,?,?,?)' ins = 'INSERT INTO {tablename} VALUES ({markers})' ins = ins.format(tablename=widgets_table.name, markers=markers) # 如果你的表已經存在了,widgets_table.name改成表名就行了. connection.execute(ins, values) except: transaction.rollback() raise
else: transaction.commit()