Postgresql 导入从特定行号开始的csv文件

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

我想将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)
)

这不能在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(默认交互终端)开始。链接的答案对此是明确的。