在PostgreSQL中将带有COPY的二进制文件插入

时间:2019-03-15 12:54:21

标签: postgresql csv

我有一个Postgres数据库,正在使用COPY填充CSV文件。某些表的列类型为bytea,在这些CSV文件中,指定了二进制文件的路径。 给定表

CREATE TABLE mytable
( ID INTEGER,
  File BYTEA
);

我知道我可以用...插入二进制文件

INSERT INTO mytable VALUES (1, pg_read_binary_file('/path/to/file'));

但是,我可以指定通过COPY从CSV文件读取/path/to/file来这样做吗?您可以将函数应用于Postgres中的COPY吗?我知道在MySQL中您可以使用类似的方法

LOAD DATA
INFILE /path/to/csv
INTO TABLE mytable
( ID,
  @File
)
SET File = LOAD_FILE(@File);

但是我必须坚持使用Postgres并将二进制文件存储在数据库中。

1 个答案:

答案 0 :(得分:1)

将csv文件导入到临时表中而不处理文件名。

然后有一个单独的INSERT调用pg_read_binary_file