【问题标题】:psql copy from read data from script从脚本读取数据的 psql 复制
【发布时间】:2019-10-05 09:46:42
【问题描述】:

我正在尝试从 PostgreSQL 数据库中导出/导入一组表。

我在脚本中使用 psql 的 copy fromstdin。我读过数据(以前使用copy tostdout 生成)可以使用命令转义\. 读取和分隔。

我没有从文档中清楚地了解到,如果 \. 出现在以前导出的数据中会发生什么。

特别是documentation(我的重点)的这一部分对此不是很清楚。

对于\copy ... from stdin,数据行从相同的源读取 发出命令,继续直到\. 被读取或流到达 EOF。此选项对于在 SQL 中内联填充表很有用 脚本文件。对于\copy ... to stdout,输出发送到同一个地方 作为 psql 命令输出,并且 COPY count 命令状态不是 打印(因为它可能与数据行混淆)。读/写 psql 的标准输入或输出与当前命令无关 source 或 \o 选项,从 pstdin 或 pstdout 写入。

数据中出现的\. 能否/必须以某种方式转义?

我目前使用utf8 编码text 格式进行导出/导入。

【问题讨论】:

    标签: postgresql psql


    【解决方案1】:

    我想我在documentation of the SQL COPY command(文本格式部分,再次强调我的)中找到了相关信息:

    数据的结尾可以由仅包含反斜杠句点 (\.) 的单行表示。从文件中读取时不需要数据结束标记,因为文件结尾非常好;只有在使用 3.0 之前的客户端协议向客户端应用程序复制数据或从客户端应用程序复制数据时才需要它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      相关资源
      最近更新 更多