【发布时间】:2018-02-27 15:51:37
【问题描述】:
我正在尝试将 csv 文件导入到 postgres 表中,我可以使用 COPY FROM 成功地做到这一点:
import.sql
\copy myTable FROM '..\CSV_OUTPUT.csv' DELIMITER ',' CSV HEADER;
但是,该查询仅在当前不在数据库中时才添加行,否则它会因错误而退出。 键 (id)=(#) 已存在。
我的表
id | alias | address
------+-------------+---------------
11 | red_foo | 10.1.1.11
12 | blue_foo | 10.1.1.12
CSV_OUTPUT.csv
id | alias | address
------+-------------+---------------
10 | black_foo | 10.1.1.11
12 | blue_foo | 10.1.1.12
13 | grey_foo | 10.1.1.13
14 | pink_foo | 10.1.1.14
如果 address 不存在,我想要的输出是将 csv 文件中的行插入到 postgresql 中。 myTable 应该已经包含 gray_foo 和 pink_foo 但不包含 black_foo,因为它的地址已经存在。
为了实现这一点,应该使用哪些正确的查询?非常感谢您的建议和想法。
【问题讨论】:
标签: postgresql csv psql postgresql-9.3