COPY 命令可以快速的导入数据到 PostgreSQL 中,文件格式类似CVS之类。适合批量导入数据,比 \i 和恢复数据表快。
导出表数据到文件或 STDOUT :
COPY tablename [(column [, ...])]
TO {'filename' | STDOUT}
[[WITH]
[BINARY]
[OIDS]
[DELIMITER [AS] 'delimiter']
[NULL [AS] 'null string']
[CSV [HEADER]
[QUOTE [AS] 'quote']
[ESCAPE [AS] 'escape']
[FORCE NOT NULL column [, ...]]
导入文件或者 STDIN 到表中:
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 QUOTE column [, ...]]
导出表 employee 到默认输出 STDOUT:
psql> COPY employee TO STDOUT;
1 JG100011 Jason Gilmore jason@example.com
2 RT435234 Robert Treat rob@example.com
3 GS998909 Greg Sabino Mullane greg@example.com
4 MW777983 Matt Wade matt@example.com
导出表 employee 到 sql 文件:
psql> COPY employee TO '/home/smallfish/employee.sql';
从文件导入数据:
psql> COPY employeenew FROM '/home/smallfish/employee.sql';
psql> SELECT * FROM employeenew;
employeeid | employeecode | name | email
------------+--------------+---------------------+---------------
1 | JG100011 | Jason Gilmore | jason@example.com
2 | RT435234 | Robert Treat | rob@example.com
3 | GS998909 | Greg Sabino Mullane | greg@example.com
4 | MW777983 | Matt Wade | matt@example.com
(4 rows)
输出对象ID(OIDS):
psql> COPY employee TO STDOUT OIDS;
24627 1 GM100011 Jason Gilmore jason@example.com
24628 2 RT435234 Robert Treat rob@example.com
24629 3 GS998909 Greg Sabino Mullane greg@example.com
24630 4 MW777983 Matt Wade matt@example.com
指定导出间隔符,默认是 \t ,这里为 | :
psql>COPY employee TO STDOUT DELIMITER '|';
1|GM100011|Jason Gilmore|jason@example.com
2|RT435234|Robert Treat|rob@example.com
3|GS998909|Greg Sabino Mullane|greg@example.com
4|MW777983|Matt Wade|matt@example.com
导入文件数据,指定间隔符为 | :
psql> COPY employeenew FROM '/home/smallfish/employee.sql' DELIMITER |;
导出指定字段的数据:
psql> COPY employee (name,email) TO STDOUT;
Jason Gilmore jason@example.com
Robert Treat rob@example.com
Greg Sabino Mullane greg@example.com
Matt Wade matt@example.com
为 NULL 字段设置默认值:
psql> COPY employee TO STDOUT NULL 'no email';
Jason Gilmore no email
Robert Treat rob@example.com
Greg Sabino Mullane greg@example.com
Matt Wade no email
导出为CVS格式:
psql> COPY employee (name, email) TO '/home/smallfish/employee.csv' CSV HEADER;
参考资料:Apress Beginning PHP and PostgreSQL 8: From Novice to Professional
分享到:
相关推荐
在IT行业中,数据库管理是...总的来说,PostgreSQL的数据导入导出涉及多个方面,从基础的命令行工具到高级的源码定制,都需要根据具体需求进行选择和操作。了解并熟练掌握这些技能,将有助于你更高效地管理你的数据库。
总结,PostgreSQL的COPY命令是高效的数据导入导出工具,尤其在处理大量数据时,其速度远超传统的INSERT语句。理解和熟练掌握COPY命令的使用,能显著提升数据库管理的工作效率。同时,结合JDBC驱动,可以方便地在Java...
本资料"SQL语句导入导出大全"涵盖了如何高效地使用SQL来处理数据的导入与导出任务。以下是关于这个主题的详细讲解。 一、SQL数据导入 1. **LOAD DATA INFILE**:MySQL中的LOAD DATA INFILE语句用于快速将大量数据...
"COPY"命令是PostgreSQL提供的一种高效的数据导入导出工具,可以直接从文件系统向数据库表复制数据,或者将数据库表的数据复制到文件系统。 在描述中提到,这个Gem(Ruby中的库或模块)使得ActiveRecord模型能够...
在进行数据导入导出时,确保数据安全性和一致性至关重要,遵循最佳实践,如备份数据、验证导入导出结果、处理异常情况,以及监控进程性能。熟悉这些操作,将有助于提升工作效率,并确保数据准确无误地在文本、Excel...
这时,可以考虑使用`LOAD DATA INFILE`(MySQL)或`COPY`(PostgreSQL)命令,它们能更快地导入大量数据。 总的来说,将数据库数据导出为INSERT语句是一种灵活的方法,便于数据的备份和迁移。了解如何正确地执行这...
PostgreSQL的COPY命令允许从文件系统直接导入或导出数据,其速度非常快。例如,`COPY my_table FROM 'data.csv' DELIMITER ',' CSV HEADER;` 5. **BULK INSERT(SQL Server)**: 在Microsoft SQL Server中,BULK...
"django-postgres-copy"是一个提升Django项目中数据导入导出效率的工具,通过利用PostgreSQL的`COPY`命令,实现了高效、批量的数据操作。它简化了大数据处理流程,降低了内存消耗,并且对于需要频繁进行数据交换的...
该Gem将使您的AR模型能够使用PostgreSQL COPY命令以CSV格式导入/导出数据。 如果您需要在PostgreSQL数据库和CSV文件之间传输数据,与使用ruby CSV + INSERT命令相比,PostgreSQL本机CSV解析器将为您提供更好的性能...
- **数据导入/导出**:提升了 `COPY` 命令的性能,使得批量数据导入导出更快。 在部署 PostgreSQL 13 时,要确保遵循最佳实践,如合理设置配置参数、定期备份、监控系统性能、使用合适的安全策略等,以确保数据库的...
是PostgreSQL特有的功能,它允许高效地批量导入表或从表导出数据。 与使用INSERT和SELECT相比,这是将数据进出表的更快的方法。 没有出色的库,该项目将无法实现,该库具有Postgres协议的漂亮实现。 建立 在...
这个库利用了PostgreSQL数据库特有的COPY命令,这是一种高效的数据导入导出机制,能快速处理大量数据,比使用普通的INSERT语句快得多。 django-postgres-copy库的核心功能在于其提供的模型方法和管理器方法,它们...
然后,你可以按照库的文档来调用相应的函数,进行数据的导入导出。 5. **优化数据传输** `COPY`命令支持多种格式,如CSV、JSON等,可以灵活选择适合你数据的格式。同时,`COPY`命令还可以与其他PostgreSQL功能...
- 导入导出加速:利用优化指令集和OSS文件前缀匹配模式。 5. GP已支持的其他特性 - 插件化:如oss_ext、PostGIS、Oracle兼容包等。 - 支持createextension语法,第三方合作伙伴ETL工具,如ORCA优化器。 - 支持...
PostgreSQL提供了COPY命令,可以从文件或标准输入/输出快速导入和导出数据: ```sql COPY table_name (column1, column2, ...) FROM '/path/to/file.csv' WITH CSV; ``` 6. JDBC批量操作: 使用Java的JDBC API...
`django_postgres_copy`是一个专门针对Django框架与PostgreSQL数据库的库,它的主要功能是提高数据导入和导出的效率。这个库的版本为0.2.5,适用于Python 2和3环境,其安装文件名为`django_postgres_copy-0.2.5-py2....
2. **SQL命令**:使用`LOAD DATA INFILE`(MySQL)、`BULK INSERT`(SQL Server)或`COPY`(PostgreSQL)等SQL命令可以快速批量导入数据。这些命令允许直接从文件中读取数据并插入到表中,提高了导入效率。 3. **...
5. **COPY命令**(PostgreSQL):PostgreSQL的COPY命令类似于MySQL的LOAD DATA INFILE,用于从文件快速导入或导出数据。 6. **ETL工具**(如 Talend, Informatica):企业级的数据导入通常使用Extract, Transform, ...