Postgres copy命令将zip文件加载到数据库中

时间:2017-04-15 20:21:08

标签: php postgresql copy

我有一个生成zip文件的程序,我暂时将它们保存在这样的目录中:

  1.zip
  2.zip
  3.zip
  ...

我做了一个PHP程序,将每个文件加载到Postgres数据库中,但我需要使用命令Postgres" copy" (因为可能更快)

我搜索了但我找不到答案

所以我的桌子是这样的:

  CREATE TABLE files (
  id int,
  file bytea,
  primary key (id));

所以每个文件名都是" id"列和每个zip文件将在" file"字段

那么如何使用复制命令执行此操作?

谢谢大家!

1 个答案:

答案 0 :(得分:0)

COPY ... WITH BINARY对支持的二进制格式有一些限制,我不确定它是否适用于zip文件。如果您向INSERT开放,我建议使用pg_read_file,例如:

INSERT INTO files VALUES
(1, pg_read_file('/path/to/1.zip')::bytea),
(2, pg_read_file('/path/to/2.zip')::bytea),
...
;