[Sqlalchemy-tickets] Issue #4162: columns as keys for insert.values() with multi-values (zzzeek/sql
Brought to you by:
zzzeek
From: Michael B. <iss...@bi...> - 2018-01-12 16:28:58
|
New issue 4162: columns as keys for insert.values() with multi-values https://bitbucket.org/zzzeek/sqlalchemy/issues/4162/columns-as-keys-for-insertvalues-with Michael Bayer: even though columns-as-keys is de-emphasized in the documentation for insert, it does work, except for multi-values: ``` #!python from sqlalchemy import * from sqlalchemy.dialects import sqlite t = table('t', column('a'), column('b')) print t.insert().values([ {"a": 1, "b": 2}, {"a": 2, "b": 2}, {"a": 3, "b": 2} ]).compile(dialect=sqlite.dialect()) print t.insert().values([ {t.c.a: 1, t.c.b: 2}, {t.c.a: 2, t.c.b: 2}, {t.c.a: 3, t.c.b: 2}, ]).compile(dialect=sqlite.dialect()) ``` output: ``` #! INSERT INTO t (a, b) VALUES (?, ?), (?, ?), (?, ?) Traceback (most recent call last): ... File "/home/classic/dev/sqlalchemy/lib/sqlalchemy/sql/crud.py", line 419, in _process_multiparam_default_bind "a Python-side value or SQL expression is required" % c) sqlalchemy.exc.CompileError: INSERT value for column t.a is explicitly rendered as a boundparameter in the VALUES clause; a Python-side value or SQL expression is required ``` |