【发布时间】:2017-09-30 01:12:15
【问题描述】:
我想插入多行并使用 asyncpg 取回 ID,我找到了两种方法: 1:生成这样的sql
INSERT INTO films (code, title, did, date_prod, kind) VALUES
('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy')
RETURNING id;
2:在for循环中使用准备好的语句
values =(('B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
('HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'))
stmnt = connection.prepare("INSERT INTO films (code, title, did, date_prod, kind) VALUES $1, $2, $3, $4, $5 RETURNING id")
for val in values:
stmnt.fetchval(*val)
如果 100 倍 700 000 行,我必须更喜欢哪种方式,或者有什么方法可以结合这些方法? 我完全是绿色的,所以给我扔一些西红柿
【问题讨论】:
-
你可以试试
COPY FROM。以我的经验,它比单独的 INSERT 语句要快得多。 -
@Udi 这不是有效的重复项
标签: python postgresql python-asyncio asyncpg