如何使用SQLAlchemy在自动递增列中一次插入多个值



我正在使用Postgres数据库和sqlalchemy核心。下面的表格

CREATE TABLE IF NOT EXISTS id_generation (id SERIAL PRIMARY KEY)

和我试图在id列中插入多个值使用下面的查询。Number_of_ids可以是1000的整数倍

for _ in range(number_of_ids):
conn.execute('INSERT INTO id_generation VALUES (DEFAULT)')

我只是想知道是否有其他方法来使用Sqlalchemy core编写这个查询。我们如何优化它?

假设您使用psycopg2作为连接器,您可以将一个空字典列表传递给conn.execute,对应于要插入的行数,SQLAlchemy将发出一个带有多个VALUES子句的INSERT语句。

import sqlalchemy as sa
...
vals = [{} for _ in range(100)]
with engine.begin() as conn:
conn.execute(sa.text(INSERT INTO id_generation VALUES (DEFAULT)'), vals)

SQLAlchemy使用psycopg2的快速执行助手,如下所示。

相关内容

  • 没有找到相关文章

最新更新