我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用PostgreSQL中的COPY命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用PostgreSQL中的COPY命令

这篇文章主要讲解了“怎么使用PostgreSQL中的COPY命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用PostgreSQL中的COPY命令”吧!

Copy命令在PG 12有所增强,在COPY FROM时可添加WHERE条件过滤.

PG 11
Copy命令

testdb=# \help 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'

简单使用

testdb=# drop table if exists t_copy;
DROP TABLE
testdb=# CREATE TABLE t_copy(id int,c1 varchar(20));
CREATE TABLE
testdb=# insert into t_copy SELECT x,'c1-'||x FROM generate_series(1, 1000) AS x;
INSERT 0 1000
testdb=# 
testdb=# COPY t_copy TO '/tmp/data/t_copy.txt' with DELIMITER '|';
COPY 1000
testdb=# drop table if exists t_import;
DROP TABLE
testdb=# CREATE TABLE t_import(id int,c1 varchar(20));
CREATE TABLE
testdb=# COPY t_import FROM '/tmp/data/t_copy.txt'  with DELIMITER '|';
COPY 1000
testdb=# select * from t_import limit 10;
 id |  c1   
----+-------
  1 | c1-1
  2 | c1-2
  3 | c1-3
  4 | c1-4
  5 | c1-5
  6 | c1-6
  7 | c1-7
  8 | c1-8
  9 | c1-9
 10 | c1-10
(10 rows)

不支持WHERE条件过滤

testdb=# COPY t_import FROM '/tmp/data/t_copy.txt'  with DELIMITER '|' where id < 5;
ERROR:  syntax error at or near "where"
LINE 1: ...t FROM '/tmp/data/t_copy.txt'  with DELIMITER '|' where id <...

PG 12
COPY命令语法

[local]:5432 pg12@testdb=# \help 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 [, ...] ) ]
    [ WHERE condition ]
COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
    TO { 'filename' | PROGRAM 'command' | STDOUT }
    [ [ WITH ] ( option [, ...] ) ]
where option can be one of:
    FORMAT format_name
    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'
URL: https://www.postgresql.org/docs/12/sql-copy.html

支持WHERE条件过滤

[local]:5432 pg12@testdb=# drop table if exists t_copy;
DROP TABLE
Time: 50.327 ms
[local]:5432 pg12@testdb=# CREATE TABLE t_copy(id int,c1 varchar(20));
CREATE TABLE
Time: 5.038 ms
[local]:5432 pg12@testdb=# insert into t_copy SELECT x,'c1-'||x FROM generate_series(1, 1000) AS x;
INSERT 0 1000
Time: 16.422 ms
[local]:5432 pg12@testdb=# 
[local]:5432 pg12@testdb=# COPY t_copy TO '/tmp/data/t_copy.txt' with DELIMITER '|';
COPY 1000
Time: 4.795 ms
[local]:5432 pg12@testdb=# drop table if exists t_import;
DROP TABLE
Time: 4.798 ms
[local]:5432 pg12@testdb=# CREATE TABLE t_import(id int,c1 varchar(20));
CREATE TABLE
Time: 2.462 ms
[local]:5432 pg12@testdb=# COPY t_import FROM '/tmp/data/t_copy.txt'  with DELIMITER '|' WHERE id < 5;
COPY 4
Time: 4.842 ms
[local]:5432 pg12@testdb=# select * from t_import;
 id |  c1  
----+------
  1 | c1-1
  2 | c1-2
  3 | c1-3
  4 | c1-4
(4 rows)
Time: 6.103 ms

感谢各位的阅读,以上就是“怎么使用PostgreSQL中的COPY命令”的内容了,经过本文的学习后,相信大家对怎么使用PostgreSQL中的COPY命令这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用PostgreSQL中的COPY命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

dos中文件复制copy命令怎么用

这篇文章主要为大家展示了“dos中文件复制copy命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“dos中文件复制copy命令怎么用”这篇文章吧。假设,你需要把d:\test\test.
2023-06-09

Linux中如何使用ssh-copy-id命令

小编给大家分享一下Linux中如何使用ssh-copy-id命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux常用命令ssh-copy-id命令可以把本
2023-06-28

Linux中ssh-copy-id命令有什么用

这篇文章主要介绍了Linux中ssh-copy-id命令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux常用命令ssh-copy-id命令 可以把本地主机的公
2023-06-28

cmd copy命令的说明及使用方法

本篇内容介绍了“cmd copy命令的说明及使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!copy,中文含义为“复制”,一个很容易见
2023-06-08

git中的命令怎么使用

这篇文章主要讲解了“git中的命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“git中的命令怎么使用”吧!git 的安装本文使用的是win7平台。 Git可以在Linux、Unix
2023-06-03

systemd中的命令怎么使用

这篇文章主要介绍“systemd中的命令怎么使用”,在日常操作中,相信很多人在systemd中的命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”systemd中的命令怎么使用”的疑惑有所帮助!接下来
2023-06-04

Linux的blkid命令命令怎么使用

这篇文章主要介绍“Linux的blkid命令命令怎么使用”,在日常操作中,相信很多人在Linux的blkid命令命令怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux的blkid命令命令怎么使用
2023-06-28

怎么在dos命令行中使用choice命令

这期内容当中小编将会给大家带来有关怎么在dos命令行中使用choice命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Choice 命令使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加
2023-06-08

zip命令怎么在dos命令行中使用

本篇文章为大家展示了zip命令怎么在dos命令行中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常用方式:-o (set Output directory) switchSpecifies a
2023-06-08

linux中的file命令怎么使用

在Linux中,file命令用于确定文件的类型。它可以检测文件是否为文本文件、二进制文件、目录等,并可提供更多有关文件的详细信息。要使用file命令,打开终端并输入以下命令格式:```file [选项] 文件名```以下是一些常用的选项:-
2023-08-30

Linux中的uniq命令怎么使用

这篇文章主要介绍了Linux中的uniq命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中的uniq命令怎么使用文章都会有所收获,下面我们一起来看看吧。在Linux系统中 uniq 命令主要
2023-06-28

Linux中的nohup命令怎么使用

今天小编给大家分享一下Linux中的nohup命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。nohup是什么no
2023-07-05

Linux中的man命令怎么使用

这篇文章主要为大家展示了“Linux中的man命令怎么使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中的man命令怎么使用”这篇文章吧。Linux常用命令man命令 是Linux下
2023-06-28

Linux中的figlet命令怎么使用

这篇文章主要介绍了Linux中的figlet命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中的figlet命令怎么使用文章都会有所收获,下面我们一起来看看吧。欢迎再次来到为期 24 天的
2023-06-27

shell中的sed命令怎么使用

在shell中,sed命令是一种流编辑器,用于对文本进行替换、删除、插入等操作。sed命令的基本语法如下:```sed [选项] '命令' 文件```其中,选项可以是以下之一:- `-n`:不输出模式空间内容到屏幕上。- `-e`:直接在命
2023-09-12

编程热搜

目录