6

我正在将 50 个 CSV 数据文件导入 postgres。我有一个整数字段,有时该值是常规数字(以逗号分隔),有时它在引号中并使用逗号表示千位。

例如,我需要同时导入 4 和“4,000”。

我正在努力:

COPY race_blocks FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;

并得到错误:

错误:整数的无效输入语法:“1,133”

我怎样才能做到这一点?

4

1 回答 1

5

假设您的数据中只有一列。首先使用 varchar 列创建临时表:

CREATE TEMP TABLE race_blocks_temp (your_integer_field VARCHAR);

从文件中复制数据

COPY race_blocks_tmp FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;

从 varchar 字段中删除“,”,将数据转换为数字并插入到表中。

INSERT INTO race_blocks regexp_replace(your_integer_field, ',', '') :: numeric AS some_colun FROM race_blocks_tmp;
于 2013-09-09T22:16:52.870 回答