使用npgsql填充数据表的最佳方法

时间:2015-06-11 09:54:46

标签: postgresql stored-procedures insert bulkinsert npgsql

我使用 npgsql 连接到PostgreSQL。这时,我通过手动生成数千个带有多个数据记录的INSERT语句来填充数据库中的表

INSERT INTO tablename ( field1, field2 ) VALUES (1, "a"), (2, "b"), (3, "c") ... + 1000 records ;

并将它们放到NpgsqlCommand

如何以更有效的方式完成这项工作?我已经听说过存储过程和BULK插入,但是需要一个很好的例子。

1 个答案:

答案 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