我有一个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并将二进制文件存储在数据库中。
答案 0 :(得分:1)
将csv文件导入到临时表中而不处理文件名。
然后有一个单独的INSERT调用pg_read_binary_file
。