我想插入多行并用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循环中使用准备好的语句
^{pr2}$如果有700000行,我必须选择100x次的方式,或者有某种方法可以组合这些方法? 我完全是绿色的,所以给我扔些西红柿
如果需要使用
RETURNING
子句来获取ID,则以下是插入多个值的最有效方法:请注意,作为输入传递的记录必须与表的形状相对应:PostgreSQL不支持将任意记录作为输入,因此必须使用已知的记录类型。只需将没有插入的列作为
None
传递,并且不要将它们包含在SELECT
返回列表中。此方法也不允许依赖DEFAULT
,必须显式指定每个插入的值。在一次插入多行的另一种方法是使用
copy_records_to_table
方法。在asyncpg
提供^{如果您需要使用
RETURNING
来返回插入的id,那么answer就是最好的选择。在相关问题 更多 >
编程相关推荐