pg的copy说明

news/2024/7/9 20:10:01 标签: postgresql

copy 可以在表和文件之间交换数据

COPY table_name [ ( column_name [, ...] ) ]
    FROM { 'filename' | PROGRAM 'command' | STDIN }
    [ [ WITH ] ( option [, ...] ) ]

COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
    TO { 'filename' | PROGRAM 'command' | STDOUT }
    [ [ WITH ] ( option [, ...] ) ]

where option can be one of:

    FORMAT format_name
    OIDS [ boolean ]
    FREEZE [ boolean ]
    DELIMITER 'delimiter_character'
    NULL 'null_string'
    HEADER [ boolean ]
    QUOTE 'quote_character'
    ESCAPE 'escape_character'
    FORCE_QUOTE { ( column_name [, ...] ) | * }
    FORCE_NOT_NULL ( column_name [, ...] )
    ENCODING 'encoding_name'

copy在pg的表和文件之间进行数据的交换。copy to把一个表的所有内容拷贝到一个文件,而copy from是从一个文件拷贝到一个表(表已存在)里。

下面是各个参数的说明

table_name

现存表的名字(可以有模式修饰)。。

column_name

可选的待拷贝字段列表。如果没有声明字段列表,那么将使用所有字段。

query

一个必须用圆括弧包围的SELECT或VALUES命令,其结果将被拷贝。

filename

输入或输出文件的路径名。输入文件名可以是绝对或是相对的路径,但输出文件名必须是绝对路径。 Windows用户可能需要使用E''字符串和双反斜线作为路径名称。

PROGRAM

需执行的程序名。在COPY FROM命令中,输入是从程序的标准输出中读取,而在COPY TO中,命令的输出会作为程序的标准输入。

注意,程序一般是在命令行界面下执行,当用户需要传递一些变量给程序时,如果这些变量的来源不是可靠的,用户必须小心过滤处理那些对命令行界面来说是有特殊意义的字符。 基于安全的原因,最好是使用固定的命令字符串,或者至少是应避免直接使用用户输入(应先过滤特殊字符)。

STDIN

声明输入是来自客户端应用。

STDOUT

声明输入将写入客户端应用。

boolean

声明用户所选的选项是否应该被开启或者关闭。您可以写TRUE、 ON或1来启用这个选项,并且用FALSE、OFF或0来关闭它。 boolean值也可以被省略,此时系统使用缺省值TRUE。

FORMAT

选择被读或者写的数据格式:text、csv(逗号分隔值),或者binary。 默认是text。

OIDS

声明为每行记录都拷贝内部对象标识(OID)。 (如果为一个query拷贝或者没有OIDS的表声明了OIDS选项,则抛出一个错误。)

FREEZE

请求拷贝那些已冻结的数据,就类似使用VACUUM FREEZE的效果。 这主要于用于初始化时加载数据时的性能考虑。 仅在表记录初始创建或是在当前子事务中被清理的记录会补冻结,没有游标会打开,事务中也没有数据快照。

注意此时其他的事务会立刻看见刚加载的数据。 这不符合MVCC正常的可见性规则,用户应注意这可能带来的潜在问题。

DELIMITER

指定分隔每一行记录中的列的字符。默认是文本格式的制表符,CSV格式的逗号。 必须有一个独立的一字节的字符。 在使用binary格式时这个选项是不允许的。

NULL

声明代表一个空值的字符串。默认是文本格式的\N,CSV格式的一个未被引用的空字符串。 即使是文本格式您可能也更偏向于空串,例如您不想从空字符串中区分空值。 在使用binary格式时这个选项是不允许的。

注意: 在使用COPY FROM的时候,任何匹配这个字符串的字符串将被存储为NULL值,所以你应该确保你用的字符串和COPY TO相同。

HEADER

声明文件包含一个带有文件中每列名称的标题行。 在输出时,第一行包含表中的列名,在输入时,第一行是被忽略的。该选项仅仅在使用CSV格式时是允许的。

QUOTE

指定引用数据的引用字符。默认的是双引号。这一定是一个1字节的字符。该选项仅仅在使用CSV格式时允许。

ESCAPE

声明应该出现在一个匹配QUOTE值的数据字符之前的字符。 默认与QUOTE值相同(所以若它出现在数据中,则引用字符是翻一倍)。 这一定是一个1字节的字符。该选项只有在使用CSV格式时允许。

FORCE_QUOTE

强制引用在每个指定列的所有非NULL值。NULL从不被引用。 如果声明了*,非NULL值将在所有列中被引用。 这个选项仅仅在COPY TO中并且仅仅在使用CSV格式时允许。

FORCE_NOT_NULL

默认情况下空字符串是空的,这意味着空值将会被读作长度为零的字符串而不是空值,即使当他们不被引用。 这个选项仅仅在COPY FROM中并且仅仅在使用CSV格式时允许。

ENCODING

声明文件的编码集是encoding_name。 如果这个选项省略,则系统使用当前的用户编码集。

COPY sb_payment_detail(GUID,RYID,DWID,JFGZ,GRJFJS,DWJFJS,GRJFE,DWJFE,JFRQ,JBR,JBSJ) FROM STDIN DELIMITER AS '' CSV QUOTE AS '' encoding 'UTF8'

2dbfb288-10f8-4633-aade-e7f04745a8e9100826561008265630764332239432212020-03-12T03:46:12.493+08:00的罚款加凉开水年开发打了卡季度付2020-03-31T09:21:54.927+08:00

用逗号作为分隔符;用双引号作为引用字符


http://www.niftyadmin.cn/n/5308823.html

相关文章

利用Type类来获得字段名称(Unity C#中的反射)

使用Type类以前需要引用反射的命名空间: using System.Reflection; 以下是完整代码: public class ReflectionDemo : MonoBehaviour {void Start(){A a new A();B b new B();A[] abArraynew A[] { a, b };foreach(A v in abArray){Type t v.GetTyp…

macOS 老版本系统恢复中出现“MacBook Pro无法与恢复服务器取得联系”

macOS 老版本系统恢复中出现“MacBook Pro无法与恢复服务器取得联系” 网络问题系统时间问题镜像索引问题 网络问题 系统时间问题 镜像索引问题 恢复模式的 “实用工具 > 系统终端” 里执行如下 nvram IASUCatalogURLhttps://swscan.apple.com/content/catalogs/others/i…

故障诊断 | 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型(matlab +python)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 故障诊断 | 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型(matlab python) 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型 特征拼接 python(pytorch) 基于2D-…

基于OpenCV的透视变换

基础概念 透视变换(Perspective Transformation)是仿射变换的一种非线性扩展,是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。 原理:将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下&#…

56、resnet中的下采样

这一节是算法原理和背景的最后一章节,下一节开始进入实战部分。 如果你从第一节看到这一节,这总共56节的内容基本上都能理解的话,那么恭喜你,算法原理部分已经掌握了,也基本接近入门了。 总结一下算法原理的部分,介绍了传统计算机视觉的一些算法,比如滤波算法,然后介…

码农好沟通吗?

码农好沟通吗?这个标题本身就是一个问题,个人认为 找对沟通的对象,是保证有效沟通的前提和基础 ,很多时候都能听见程序员和客户沟通差点把客户气死,理解不到客户的需求点。因为相互间的知识体系都不一样,如…

docker-compose安装及常用指令学习和harbor安装使用

文章目录 1 docker-compose1.1 docker-compose安装1.2 docker-compose卸载1.3 docker-compose常用命令 2 harbor安装使用2.1 harbor安装2.2 harbor使用 1 docker-compose ​ 在实际生产环境中,一个应用往往由许多服务构成,而 docker 的最佳实践是一个容…

C语言 B树的分析与实现

本文主要说明了B树的概念、应用以及如何用C语言实现B树。 概述 有使用过数据库的朋友都知道,数据库需要存储大量的数据,并且查询数据的性能也需要一定的保证。那么数据库的底层数据结构是如何实现的呢,就是我们要讨论的B树和B树&#xff0c…