【发布时间】:2021-05-26 12:20:29
【问题描述】:
我正在尝试使用 pg-admin 将 CSV (Cities.csv) 导入我的 Postgres。我知道这是一个常见问题,在 SO 上找到的答案很少。但是,我们如何通过 pg-admin 解决这个问题?
【问题讨论】:
-
可以分享
ei_test的创建表吗?
标签: sql postgresql csv pgadmin
我正在尝试使用 pg-admin 将 CSV (Cities.csv) 导入我的 Postgres。我知道这是一个常见问题,在 SO 上找到的答案很少。但是,我们如何通过 pg-admin 解决这个问题?
【问题讨论】:
ei_test的创建表吗?
标签: sql postgresql csv pgadmin
我不会依赖像 pgAdmin 这样的工具来导入数据。它确实提供了一个不错的用户界面并且非常直观,但是psql 仍然是迄今为止最灵活的选择。
注意:您的 CSV 文件末尾有一个空行,这可能是导致错误的原因。过滤掉它的一种选择是使用sed(参见下面的示例)。这样COPY 命令就已经清理干净并准备好导入记录了。
$ sed -e /^$/d cities.csv | psql -d mydb -c "COPY ei_test FROM STDIN WITH CSV HEADER;"
您的数据已经可以使用了..
SELECT * FROM ei_test LIMIT 10;
latd | latm | lats | ns | lond | lonm | lons | ew | city | state
------+------+------+----+------+------+------+----+------------------+-------
41 | 5 | 59 | N | 80 | 39 | 0 | W | Youngstown | OH
42 | 52 | 48 | N | 97 | 23 | 23 | W | Yankton | SD
46 | 35 | 59 | N | 120 | 30 | 36 | W | Yakima | WA
42 | 16 | 12 | N | 71 | 48 | 0 | W | Worcester | MA
43 | 37 | 48 | N | 89 | 46 | 11 | W | Wisconsin Dells | WI
36 | 5 | 59 | N | 80 | 15 | 0 | W | Winston-Salem | NC
49 | 52 | 48 | N | 97 | 9 | 0 | W | Winnipeg | MB
39 | 11 | 23 | N | 78 | 9 | 36 | W | Winchester | VA
34 | 14 | 24 | N | 77 | 55 | 11 | W | Wilmington | NC
39 | 45 | 0 | N | 75 | 33 | 0 | W | Wilmington | DE
(10 Zeilen)
【讨论】: