PostgreSQL数据导出导入COPY
[postgres@DELL-R720 bin]$ ./psql -p 6432
psql (9.4.5)
Type "help" for help.
postgres=#
postgres=# \h copy
Command: COPY
Description: copy data between a file and a table
Syntax:
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 [, ...] )
FORCE_NULL ( column_name [, ...] )
ENCODING 'encoding_name'
postgres=# \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------------+-------+--------------+----------+-------------
public | customer | table | benchmarksql | 1772 MB |
public | district | table | benchmarksql | 152 kB |
public | history | table | benchmarksql | 250 MB |
public | item | table | benchmarksql | 10184 kB |
public | new_order | table | benchmarksql | 38 MB |
public | oorder | table | benchmarksql | 198 MB |
public | order_line | table | benchmarksql | 3000 MB |
public | stock | table | benchmarksql | 3392 MB |
public | warehouse | table | benchmarksql | 40 kB |
(9 rows)
postgres=# copy stock to '/tmp/stock.sql';
COPY 10000000
postgres=# truncate stock ;
TRUNCATE TABLE
postgres=# \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------------+-------+--------------+----------+-------------
public | customer | table | benchmarksql | 1772 MB |
public | district | table | benchmarksql | 152 kB |
public | history | table | benchmarksql | 250 MB |
public | item | table | benchmarksql | 10184 kB |
public | new_order | table | benchmarksql | 38 MB |
public | oorder | table | benchmarksql | 198 MB |
public | order_line | table | benchmarksql | 3000 MB |
public | stock | table | benchmarksql | 0 bytes |
public | warehouse | table | benchmarksql | 40 kB |
(9 rows)
postgres=# copy stock from /tmp/stock.sql ;
ERROR: syntax error at or near "/" at character 18
STATEMENT: copy stock from /tmp/stock.sql ;
ERROR: syntax error at or near "/"
LINE 1: copy stock from /tmp/stock.sql ;
^
postgres=# copy stock from '/tmp/stock.sql' ;
COPY 10000000
postgres=# \d+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------------+-------+--------------+----------+-------------
public | customer | table | benchmarksql | 1772 MB |
public | district | table | benchmarksql | 152 kB |
public | history | table | benchmarksql | 250 MB |
public | item | table | benchmarksql | 10184 kB |
public | new_order | table | benchmarksql | 38 MB |
public | oorder | table | benchmarksql | 198 MB |
public | order_line | table | benchmarksql | 3000 MB |
public | stock | table | benchmarksql | 3392 MB |
public | warehouse | table | benchmarksql | 40 kB |
(9 rows)