pg的copy说明

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

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

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

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

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值