【发布时间】:2019-09-02 14:07:33
【问题描述】:
我正在尝试使用 SQLAlchemy 的插入和执行方法,将字典列表作为值,并取回插入的 ID。数据库是 Postgres,应该支持 RETURNING。
代码看起来或多或少是这样的:
table = MyThing.__table__
insert_stmt = table.insert().values({"name": bindparam("name_val")}).returning(table.c.id)
values = [{"name_val": "a"}, {"name_val": "b"}]
result = session.execute(insert_stmt, values).fetchall()
(为了可读性和一些混淆而进行了修剪)
当值列表大于一时(如上例所示),我得到:
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) 没有要获取的结果
但是当列表只有一个值时,新的 id 会正确返回。
我知道我在返回时可能遗漏了一些东西,但我不知道是什么。
【问题讨论】:
标签: python postgresql sqlalchemy bulkinsert