【发布时间】:2022-01-10 21:14:13
【问题描述】:
使用 pgAdmin4 应用程序中的查询编辑器,我想将数据从 csv 文件导入到表中。我的代码如下:
CREATE DATABASE gps_tracking_db
ENCODING = 'UTF8'
TEMPLATE = template0
LC_COLLATE = 'C'
LC_CTYPE = 'C';
CREATE SCHEMA main;
COMMENT ON SCHEMA main IS 'Schema that stores all the GPS tracking core data.';
CREATE TABLE main.gps_data(
gps_data_id serial,
gps_sensors_code character varying,
line_no integer,
utc_date date,
utc_time time without time zone,
lmt_date date,
lmt_time time without time zone,
ecef_x integer,
ecef_y integer,
ecef_z integer,
latitude double precision,
longitude double precision,
height double precision,
dop double precision,
nav character varying(2),
validated character varying(3),
sats_used integer,
ch01_sat_id integer,
ch01_sat_cnr integer,
ch02_sat_id integer,
ch02_sat_cnr integer,
ch03_sat_id integer,
ch03_sat_cnr integer,
ch04_sat_id integer,
ch04_sat_cnr integer,
ch05_sat_id integer,
ch05_sat_cnr integer,
ch06_sat_id integer,
ch06_sat_cnr integer,
ch07_sat_id integer,
ch07_sat_cnr integer,
ch08_sat_id integer,
ch08_sat_cnr integer,
ch09_sat_id integer,
ch09_sat_cnr integer,
ch10_sat_id integer,
ch10_sat_cnr integer,
ch11_sat_id integer,
ch11_sat_cnr integer,
ch12_sat_id integer,
ch12_sat_cnr integer,
main_vol double precision,
bu_vol double precision,
temp double precision,
easting integer,
northing integer,
remarks character varying
);
COMMENT ON TABLE main.gps_data
IS 'Table that stores raw data as they come from the sensors (plus the ID of
the sensor).';
ALTER TABLE main.gps_data
ADD CONSTRAINT gps_data_pkey
PRIMARY KEY(gps_data_id);
ALTER TABLE main.gps_data
ADD COLUMN insert_timestamp timestamp with time zone
DEFAULT now();
ALTER TABLE main.gps_data
ADD CONSTRAINT unique_gps_data_record
UNIQUE(gps_sensors_code, line_no); /*what does line_no mean?*/
COPY main.gps_data(
gps_sensors_code, line_no, utc_date, utc_time, lmt_date, lmt_time, ecef_x,
ecef_y, ecef_z, latitude, longitude, height, dop, nav, validated, sats_used,
ch01_sat_id, ch01_sat_cnr, ch02_sat_id, ch02_sat_cnr, ch03_sat_id,
ch03_sat_cnr, ch04_sat_id, ch04_sat_cnr, ch05_sat_id, ch05_sat_cnr,
ch06_sat_id, ch06_sat_cnr, ch07_sat_id, ch07_sat_cnr, ch08_sat_id,
ch08_sat_cnr, ch09_sat_id, ch09_sat_cnr, ch10_sat_id, ch10_sat_cnr,
ch11_sat_id, ch11_sat_cnr, ch12_sat_id, ch12_sat_cnr, main_vol, bu_vol,
temp, easting, northing, remarks)
FROM
'/Users/CDDEP/Downloads/Urbano 2014/tracking_db/data/sensors_data/GSM01438.csv'
WITH (FORMAT csv, HEADER, DELIMITER ';')
但是,当我运行 CREATE FROM 命令时,返回以下错误消息:
错误:无法打开文件“/Users/CDDEP/Downloads/Urbano 2014/tracking_db/data/sensors_data/GSM01438.csv”进行阅读:没有这样的文件或目录 提示:COPY FROM 指示 PostgreSQL 服务器进程读取文件。您可能需要一个客户端工具,例如 psql 的 \copy。 SQL 状态:58P01
我想知道这个错误是否是由于 Mac 文件路径的格式问题或其他原因造成的。
【问题讨论】:
-
您是否按照提示进行操作?
/Users/CDDEP/Downloads/Urbano 2014/tracking_db/data/sensors_data/GSM01438.csv是否存在于运行 服务器 的机器上?服务器进程是否可读? -
选项 1) 在查询编辑器中执行
COPY命令之前的所有操作,然后使用Import/Export 导入数据。 2) 使用psql运行脚本并使用\copy而不是COPY。 -
谢谢!我会尽快尝试并报告。我尝试使用相同的文件路径在 R 中导入 csv 并且没有问题。
标签: postgresql filepath pgadmin-4 import-csv