`

COPY命令:为PostgreSQL批量导入数据

 
阅读更多

转自:http://blog.sina.com.cn/s/blog_4d45ec960100rxlt.html

任务:将excel表中的数据导入到PostgreSQL数据库的某张表中。

工具:PostgreSQL客户端pgAdmin。

步骤:

1.excel表格字段,按照postgresql 数据库中表的字段顺序来整理数据,并保存为csv文件。

2.用记事本打开csv文件,另存为UTF-8格式。

3.使用PgAdmin客户端链接postgresql数据库,执行如下脚本,导入csv文件到PostgreSQL数据表:

  copy testdata from 'd:/test/testdata.csv' delimiter as ',' csv quote as '"'

  注:testdata 是postgreSQL数据库表的名称。

注意事项:

1.test目录需要赋予postgres 用户可读写的权限,否则会有如下报错信息:

   ERROR: could not open file "d:/testdata2.csv" for writing: Permission denied

2.csv文件要为utf-8格式,否则导入时可能会有报错:

  ERROR: invalid byte sequence for encoding "UTF8": 0xcdf5

3.注意windows环境下文件路径的表述方式,如d:/test/data.csv

附录:

1. postgreSQL数据表也可以批量导出为csv格式,命令如下:

  copy testdata to 'd:/test/testdata.csv' delimiter as ',' csv quote as '"'

2.copy 命令的其他用法:

  COPY --  在表和文件之间拷贝数据

(1)COPY FROM

  COPY tablename [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ [ WITH ]
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ]
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE NOT NULL column [, ...] ]
(2)COPY TO

COPY tablename [ ( column [, ...] ) ]
    TO { 'filename' | STDOUT }

  [ [ WITH ]

          [ BINARY ]

          [ OIDS ]

          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ QUOTE [ AS ] 'quote' ]
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE QUOTE column [, ...] ]
参数详细说明见:PostgreSQL 8.1 中文文档,http://www.pgsqldb.org/pgsqldoc-8.1c/sql-copy.html

分享到:
评论

相关推荐

    批量导入数据库中数据

    在数据库管理中,批量导入数据是一项常见的操作,尤其在处理大量结构化信息时,它可以显著提高工作效率。批量导入数据能够避免手动逐条插入的繁琐,节约时间并减少人为错误。以下将详细介绍批量导入数据库中数据的...

    将excal批量数据插入到postgresql数据库(目前实现字符串拼接的方式)

    在本教程中,我们将聚焦于如何将Excel数据批量导入到PostgreSQL数据库,特别关注一种常见的方法——通过字符串拼接的方式。PostgreSQL是一个功能强大的开源关系型数据库管理系统,而Excel则是广泛使用的电子表格工具...

    SQL必知必会PostgresSQL数据导入脚本

    3. **事务管理**:批量导入数据时,考虑包裹在`BEGIN`和`COMMIT`之间,以确保数据导入的原子性。 4. **性能优化**:对于大量数据,可调整`pg_stat_temp`设置、增加工作内存或使用批量插入来提升性能。 5. **备份与...

    PostgreSQL命令帮助

    8. **\copy**:执行SQL的COPY命令,用于高效地导入或导出大量数据。 9. **\o**:将查询结果重定向到文件,对于数据分析和报告生成非常有用。 10. **\i**:执行文件中的SQL命令,这使得批量执行脚本成为可能。 11....

    PostgreSQL从菜鸟到专家

    - **使用\copy命令**:批量导入数据。 - **直接从另一个程序加载数据**:使用外部工具导入数据。 ##### 修改数据库中的数据 - **使用UPDATE语句**:更新现有数据。 - **通过另一个表更新**:使用子查询更新数据。 ...

    向数据库中导入数据的几种方法

    MySQL提供了一个名为`LOAD DATA INFILE`的命令,可以直接从文件中快速导入数据。这种方式通常比使用INSERT语句快很多,适用于大批量数据导入。例如,`LOAD DATA INFILE 'data.txt' INTO TABLE my_table;` 4. **...

    django-postgres-copy:使用Django对PostgreSQLCOPY命令的支持,快速导入和导出定界数据

    使用"django-postgres-copy"时,开发者可以编写Django管理命令或视图,将数据文件与数据库表对应起来,然后调用COPY命令进行快速的数据交换。这对于数据科学家、DBA以及任何需要处理大量数据的开发者来说,都是一个...

    计算机软件-商业源码-向数据库中导入数据的几种方法.zip

    5. **COPY命令**(PostgreSQL):PostgreSQL的COPY命令类似于MySQL的LOAD DATA INFILE,用于从文件快速导入或导出数据。 6. **ETL工具**(如 Talend, Informatica):企业级的数据导入通常使用Extract, Transform, ...

    SQL语句导入导出大全

    3. **COPY命令**:在PostgreSQL中,COPY命令可以从一个文件系统文件快速地导入或导出数据。它可以大大提高导入效率。 4. **Oracle SQL*Loader**:Oracle提供了SQL*Loader工具,允许用户从外部文件加载数据到数据库...

    有关数据库导入的问题

    2. **SQL命令**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等SQL命令可以快速批量导入数据。这些命令允许直接从文件中读取数据并插入到表中,提高了导入效率。 3. **...

    redshift-copy-script:在Redshift中运行COPY命令的Python小脚本

    COPY命令是Redshift的内置SQL命令,用于从Amazon S3上的CSV、JSON或Parquet等格式的文件快速导入数据。它可以指定数据格式、分隔符、空值表示等参数,支持直接压缩和解压缩数据。 3. **Python脚本**: `redshift-...

    pg_bulkload:PostgreSQL高速数据加载实用程序

    PostgreSQL,作为一款强大的开源关系型数据库系统,提供了多种方法来导入数据,其中`pg_bulkload`是一个专为提高数据批量加载速度而设计的工具。本文将深入探讨`pg_bulkload`的工作原理、优势以及如何在PostgreSQL...

    4 应用开发者指南_1.pdf

    11. COPY命令:分为DB端COPY和客户端COPY,它们允许开发者高效地将数据批量导入导出到外部文件。 12. 数据库优化:包括理解函数成本和优化器如何选择最有效的执行计划,以及如何使用索引提高查询效率。 13. 数据库...

    计算机软件-编程源码-向数据库中导入数据的几种方法.zip

    MySQL提供了一个特别高效的LOAD DATA INFILE命令,用于从CSV或其他格式的文本文件快速导入数据: ```sql LOAD DATA INFILE 'data.txt' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES ...

    pgcopy:使用二进制副本快速加载数据

    与传统的COPY命令相比,它能更快地将数据写入数据库,因为它是以二进制格式传输的,而不是文本格式。此外,它利用PostgreSQL的流复制机制,可以并行处理多个数据流,进一步提高导入速度。这对于需要快速恢复数据或者...

    Excel导入,将数据导入到数据库

    4. **编写SQL语句**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等命令,根据数据库类型编写SQL语句来导入数据。这些命令需要指定文件路径、表名以及各字段的映射关系。 ...

    PyPI 官网下载 | django-postgres-copy-2.0.2.tar.gz

    这个库利用了PostgreSQL数据库特有的COPY命令,这是一种高效的数据导入导出机制,能快速处理大量数据,比使用普通的INSERT语句快得多。 django-postgres-copy库的核心功能在于其提供的模型方法和管理器方法,它们...

Global site tag (gtag.js) - Google Analytics