使用autoincrement

时间:2017-09-19 14:29:59

标签: c# database postgresql npgsql

我有一个包含120万个托盘的csv文件,它代表模拟值,例如:当前价值。当我保存数据记录时,我想一次性插入这些值。

当我的软件进行下一次运行时,它需要知道最后一个主键ID是什么。我认为有可能主键处理是有意义的,以便下一次运行自动得到它是正确的主键。

在我的PostgreSQL数据库中,我有下表

CREATE TABLE tbl_test
( id INTEGER primary key,
  value INTEGER
);

此外,我有一个只有一列的csv编码文件。内容如下:

 value 
------
  89     
  12    
  234  

然后我使用以下命令插入我的值。

Using writer = conn.BeginTextImport("COPY tbl_test (value) FROM
'C://temp//analog.csv'")

我预计,结果将如下表所示,但是无法像我检测到的那样插入数据。

是否可以在COPY命令的帮助下添加csv文件的内容,以便id列自动递增,结果如下所示?

 id  | value 
-----+-------
   1 |  89
   2 |  12
   3 |  234

1 个答案:

答案 0 :(得分:1)

不确定评论中有什么问题,为什么不尝试连续编辑:

t=# CREATE TABLE tbl_test
( id serial primary key,
  value INTEGER
);
CREATE TABLE

t=# copy tbl_test (value) from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
  89
  12
  234  >> >> >>
>> \.
COPY 3
t=# select * from tbl_test;
 id | value
----+-------
  1 |    89
  2 |    12
  3 |   234
(3 rows)