[Sqlalchemy-tickets] Issue #3192: Support MultiRow Inserts (zzzeek/sqlalchemy)
Brought to you by:
zzzeek
|
From: cieplak <iss...@bi...> - 2014-09-09 22:48:40
|
New issue 3192: Support MultiRow Inserts https://bitbucket.org/zzzeek/sqlalchemy/issue/3192/support-multirow-inserts cieplak: As far as I can tell, SQLAlchemy Core does not render multirow insert statements such as the following, even when the underlying database supports multirow inserts: ``` #!sql INSERT INTO mytable (col1, col2, col3) VALUES (1, 2, "abc"), (2, 4, "xyz"), (3, 5, "aaa"), (4, 7, "bbb"); ``` Postgres has had multiple row inserts since 8.2 and sqlite since 3.7.11. ``` #!python from sqlalchemy import Column, Integer, MetaData, Table, Unicode, create_engine from sqlalchemy.orm import scoped_session, sessionmaker engine = create_engine('sqlite://') session = scoped_session(sessionmaker(bind=engine)) metadata = MetaData() table = Table( 'table', metadata, Column('id', Integer, primary_key=True), Column('value', Unicode), ) table.create(bind=engine) items = [(1, 'a'), (2, 'b'), (3, 'c')] values = [{'id': a, 'value': b} for a, b in items] # Ideally this would render a single INSERT statement, rather than three session.execute(table.insert(), values) ``` |