如何将.csv中的数据导入到具有自动增量列的表中?

时间:2014-11-24 08:45:21

标签: database csv vertica

我想将数据从csv导入到具有自动增量列的表中。但它会出错,因为id列是自动递增的,它不接受。如何将数据导入该表?

我的表格中包含idname

我的 .csv 文件是

4   jack
10  carl

1 个答案:

答案 0 :(得分:2)

诀窍是在这里使用序列而不是身份。文档描述了differences between sequence, auto_increment and identity

您感兴趣的是,您确实可以使用序列强制列的值。当然,要小心自己没有重复,然后设置序列的下一个值,以确保您将避免将来重复。

最简单的例子是:

CREATE TABLE test (id INT, value VARCHAR(10));
CREATE SEQUENCE seqtest;
ALTER TABLE test ALTER COLUMN id set default NEXTVAL('seqtest');

然后,您可以看到它符合您的期望:

INSERT INTO test (value) VALUES ('default');
INSERT INTO test (id, value) VALUES (42, 'forced');
select * from test;
 id |  value
----+---------
  1 | default
 42 | forced

事后安全:

ALTER SEQUENCE seqtest RESTART WITH 43;