小编0sv*_*sv4的帖子

使用asyncpg插入多行的最佳方法

我想插入多行并使用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;
Run Code Online (Sandbox Code Playgroud)

2:在for循环中使用prepared语句

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)
Run Code Online (Sandbox Code Playgroud)

哪种方式我必须更喜欢100x次700,000行,或者有一些方法来结合这些方法?我完全是绿色的,所以在我身上扔一些烤肉

python postgresql python-asyncio asyncpg

6
推荐指数
3
解决办法
3820
查看次数

标签 统计

asyncpg ×1

postgresql ×1

python ×1

python-asyncio ×1