PG中的SQL copy和元命令copy命令

0    1883    9

Tags:

👉 本文共约11717个字,系统预计阅读时间或需45分钟。

COPY和“\copy”的区别

psql支持文件数据导入到数据库,也支持数据库表数据导出到文件中。 COPY命令和\copy 命令都支持这两类操作,但两者有如下区别:

  • COPY 命令是SQL命令,\copy 命令是元命令。
  • 执行COPY 命令的用户必须具有SUPERUSER超级权限(将数据通过stdin/stdout方式导入导出情况除外)或授予了默认角色pg_read_server_filespg_write_server_filespg_execute_server_program之一的用户,而 \copy 元命令不需要SUPERUSER权限。
  • COPY 命令读取或写入数据库服务端主机上的文件,而 \copy 元命令是从psql客户端主机读取或写入文件。
  • 从性能方面看, 大数据量导出文件或大文件数据导入数据库,COPY 比 \copy 性能高。

COPY命令

COPY — 在一个文件和一个表之间复制数据

大纲

描述

COPY在 PostgreSQL表和标准文件系统文件之间 移动数据。COPY TO把一个表的内容复制 一个文件,而COPY FROM一个文件复制数据到一个表(把数据追加到表中原有数 据)。COPY TO也能复制一个 SELECT查询的结果。

如果指定了一个列列表,COPY TO将只把指定列的数据复制到文件。对于COPY FROM,文件中的每个字段将按顺序插入到指定列中。COPY FROM命令的列列表中没有指定的表列则会采纳其默认值。

带一个文件名的COPY指示 PostgreSQL服务器直接从一个文件读取 或者写入到一个文件。该文件必须是 PostgreSQL用户(运行服务器的用户 ID) 可访问的并且应该以服务器的视角来指定其名称。当指定了 PROGRAM时,服务器执行给定的命令并且从该程序的标准 输出读取或者写入到该程序的标准输入。该程序必须以服务器的视角指定,并且 必须是PostgreSQL用户可执行的。在指定 STDIN或者STDOUT时,数据会通过客 户端和服务器之间的连接传输。

参数

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部