Aar*_*der 6 sql csv postgresql
我正在将 50 个 CSV 数据文件导入 postgres。我有一个整数字段,有时该值是一个常规数字(逗号分隔),有时它在引号中并使用逗号表示千位。
例如,我需要同时导入 4 和“4,000”。
我想:
COPY race_blocks FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
并得到错误:
错误:整数的无效输入语法:“1,133”
我怎样才能做到这一点?
假设您的数据中只有一列。首先使用 varchar 列创建临时表:
CREATE TEMP TABLE race_blocks_temp (your_integer_field VARCHAR);
Run Code Online (Sandbox Code Playgroud)
从文件复制数据
COPY race_blocks_tmp FROM '/census/race-data/al.csv' DELIMITER ',' CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
从 varchar 字段中删除“,”,将数据转换为数字并插入到您的表中。
INSERT INTO race_blocks regexp_replace(your_integer_field, ',', '') :: numeric AS some_colun FROM race_blocks_tmp;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6090 次 |
| 最近记录: |