使用自动增量将 csv 列复制到 postgresql
Copy a csv column into postgresql with autoincrement
我有一个包含 120 万个条目的 csv 文件,这些条目代表模拟值,例如当前值。当我保存数据记录时,我想一次性插入这些值。
当我的软件有下一个 运行 时,它需要知道最后一个主键 ID 是什么。我认为可能会隐式处理主键内容,以便下一个 运行 自动获得正确的主键。
在我的 PostgreSQL 数据库中,我有以下 table
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'")
我预计结果会像下面这样table,但是无法像我预期的那样插入数据。
是否可以借助COPY
命令添加csv文件的内容,使id列自动递增,结果如下?
id | value
-----+-------
1 | 89
2 | 12
3 | 234
不确定评论有什么问题,为什么不尝试连载:
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)
我有一个包含 120 万个条目的 csv 文件,这些条目代表模拟值,例如当前值。当我保存数据记录时,我想一次性插入这些值。
当我的软件有下一个 运行 时,它需要知道最后一个主键 ID 是什么。我认为可能会隐式处理主键内容,以便下一个 运行 自动获得正确的主键。
在我的 PostgreSQL 数据库中,我有以下 table
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'")
我预计结果会像下面这样table,但是无法像我预期的那样插入数据。
是否可以借助COPY
命令添加csv文件的内容,使id列自动递增,结果如下?
id | value
-----+-------
1 | 89
2 | 12
3 | 234
不确定评论有什么问题,为什么不尝试连载:
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)