我使用 npgsql 连接到PostgreSQL。这时,我通过手动生成数千个带有多个数据记录的INSERT语句来填充数据库中的表
INSERT INTO tablename ( field1, field2 ) VALUES (1, "a"), (2, "b"), (3, "c") ...
+ 1000 records
;
并将它们放到NpgsqlCommand
。
如何以更有效的方式完成这项工作?我已经听说过存储过程和BULK插入,但是需要一个很好的例子。
答案 0 :(得分:1)
PostgreSQL包含用于批量数据加载的COPY功能:http://www.postgresql.org/docs/9.4/static/sql-copy.html
Npgsql在其API中公开COPY。但是,Npgsql 3.0的下一个主要版本仍处于测试阶段,我们完全重做了对COPY的支持。因此,编写2.2 COPY API代码并不是一个好主意,只需要尽快迁移它。如果您使用测试版就行了,请使用3.0,否则请等待几周,然后才能发布。
Npgsql 2.2 COPY API:https://github.com/npgsql/npgsql/wiki/User-Manual(搜索"快速批量数据复制到表格")
Npgsql 3.0 COPY API:http://npgsql.github.io/npgsql/doc/copy.html(临时网址将更改为http://www.npgsql.org/doc/copy.html)