我有一个表,我想在每个查询中插入大约 1000 个项目,并在创建后获取它们的 PK,以便以后用作其他表的 FK。
我尝试使用postgresql 中的返回语法插入它们。但插入大约需要10 秒
INSERT INTO table_name (col1, col2, col3) VALUES (a1,a2,a3)....(a(n-2),a(n-1),a(n)) returning id;
通过删除RETURNING
我可以获得更好的性能〜50ms。
我认为,如果我可以通过原子操作来获取第一个 id 并同时插入行,我可以通过删除RETURNING
. 但不明白这是否可能。