在文件和表之间复制数据
| STDOUT} |
COPY table [(column [, ...])] FROM {'file' | |
STDIN} |
[[WITH] [OIDS] [HEADER] [DELIMITER [ AS ] 'delimiter'] [NULL [AS ] 'null string'] [ESCAPE [ AS ] 'escape' | 'OFF'] [NEWLINE [AS ] 'LF' | 'CR' | 'CRLF'] [CSV [QUOTE [ AS ] 'quote'] [FORCE NOT NULL column [, ...]] |
[FILL MISSING FIELDS] [[LOG ERRORS [INTO error_table] [KEEP] SEGMENT REJECT LIMIT cou^t [ROWS | PERCENT]] |
COPY {table [(column [, |
...])]| (query)} TO {'file |
[ [WITH] [OIDS] [HEADER] [DELIMITER [ AS ] 'delimiter'] [NULL [AS ] 'null string'] [ESCAPE [ AS ] 'escape' | 'OFF'] [CSV [QUOTE [AS ] 'quote'] [FORCE QUOTE column [,...]]] [IGNORE EXTERNAL PARTITIONS ] |
概要
描述
COPY在Greenplum的数据库表和标准文件系统文件之间移动数据。 COPY TO命令会拷贝的表的内容到一个文件,而COPY FROM会将数据从文件拷贝到表(不论表中数据是否存在,都会将数据追加到表中)。 COPY TO还可以复制一个SELECT查询的结果。
在COPY命令中附带一个文件名,就会使得GPDB的master节点直接从这个文件读写数据。这个文件必须在master节点上并且必须是从master节点的角度能看的到。如果带有STDIN 或 STDOUT,则数据会在客户端和master之间进行传输。
如果使用了段的拒绝极限(SEGMENT REJECTLIMIT),则COPY FROM操作就会在单行错误隔离的模式下运行。在这种场景下,单行的错误隔离只能应用在输入文件的行的格式错误上,例如,一个错误的数据类型