Postgresql 导入从特定行号开始的csv文件
我想将csv文件导入从csv文件第9行开始的表中。如何在postgresql中指定此条件 前8行有一堆描述以下数据的无关文本。这是导入Excel的文件的屏幕截图 这是我的数据库中的表,我正试图将数据插入其中Postgresql 导入从特定行号开始的csv文件,postgresql,csv,import,Postgresql,Csv,Import,我想将csv文件导入从csv文件第9行开始的表中。如何在postgresql中指定此条件 前8行有一堆描述以下数据的无关文本。这是导入Excel的文件的屏幕截图 这是我的数据库中的表,我正试图将数据插入其中 CREATE TABLE trader.weather ( station text NOT NULL, "timestamp" timestamp with time zone NOT NULL, temp numeric(6,2), wind numeric(6,2) ) 这不能在P
CREATE TABLE trader.weather
(
station text NOT NULL,
"timestamp" timestamp with time zone NOT NULL,
temp numeric(6,2),
wind numeric(6,2)
)
这不能在PostgreSQL上完成,您应该在postgres之前使用外部工具或进程来完成 根据本手册,您可以对CSV执行的唯一流程主要是
QUOTE
或NULL
相关:
COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | STDIN }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column_name [, ...] ] ] ]
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
TO { 'filename' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE { column_name [, ...] | * } ] ] ]
在PostgreSQL中使用CSV之前,有很多方法可以自动更改CSV,您应该检查其他选项。在PostgreSQL中无法完成此操作,您应该在postgres之前使用外部工具或流程完成此操作 根据本手册,您可以对CSV执行的唯一流程主要是
QUOTE
或NULL
相关:
COPY table_name [ ( column_name [, ...] ) ]
FROM { 'filename' | STDIN }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column_name [, ...] ] ] ]
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
TO { 'filename' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE { column_name [, ...] | * } ] ] ]
在PostgreSQL中使用CSV之前,有很多方法可以自动更改CSV,您应该检查其他选项。可以使用Postgres来完成CSV,而不是直接使用复制
使用以下临时暂存表:
CREATE TEMP TABLE target_tmp AS
TABLE target_tbl LIMIT 0; -- create temp table with same columns as target table
COPY target_tmp FROM '/absolute/path/to/file' (FORMAT csv);
INSERT INTO target_tbl
TABLE target_tmp
OFFSET 8; -- start with line 9
DROP TABLE target_tmp; -- optional, else it's dropped at end of session automatically
跳过的行也必须有效
显然,这是更昂贵的-这不应该有太大的关系,小型到中型表。大桌子很重要。然后,在导入之前,确实应该修剪输入文件中多余的行
确保您的temp\u buffers
设置足够大,可以容纳temp表,以最小化性能损失
相关(带有无超级用户权限的\copy
说明):
它可以用Postgres完成,而不是直接用复制
使用以下临时暂存表:
CREATE TEMP TABLE target_tmp AS
TABLE target_tbl LIMIT 0; -- create temp table with same columns as target table
COPY target_tmp FROM '/absolute/path/to/file' (FORMAT csv);
INSERT INTO target_tbl
TABLE target_tmp
OFFSET 8; -- start with line 9
DROP TABLE target_tmp; -- optional, else it's dropped at end of session automatically
跳过的行也必须有效
显然,这是更昂贵的-这不应该有太大的关系,小型到中型表。大桌子很重要。然后,在导入之前,确实应该修剪输入文件中多余的行
确保您的temp\u buffers
设置足够大,可以容纳temp表,以最小化性能损失
相关(带有无超级用户权限的\copy
说明):
我在问题中添加了一些关于我的数据集的细节。谢谢。我也得到错误:必须是超级用户才能复制到或从file@otterdog2000:您可以使用psql meta命令\copy
。我在链接的答案中添加了详细的说明。当我将COPY替换为\COPY……….错误:第4行或附近的语法错误:\COPY weather\u temp FROM/D:/Google Drive/Work/forester/mesow…@otterdog2000:\COPY
是一个psql元命令,而不是无法从pgAdmin SQL编辑器运行的SQL命令,仅从psql(默认交互终端)开始。链接的答案对此很明确。我在问题中添加了一些关于我的数据集的细节。谢谢。我也得到错误:必须是超级用户才能复制到或从file@otterdog2000:您可以使用psql meta命令\copy
。我在链接的答案中添加了详细的说明。当我将COPY替换为\COPY……….错误:第4行或附近的语法错误:\COPY weather\u temp FROM/D:/Google Drive/Work/forester/mesow…@otterdog2000:\COPY
是一个psql元命令,而不是无法从pgAdmin SQL编辑器运行的SQL命令,仅从psql(默认交互终端)开始。链接的答案对此是明确的。