暂无图片
postgreSQL 导出全量表结果,怎么导 ?
我来答
分享
暂无图片 匿名用户
postgreSQL 导出全量表结果,怎么导 ?

postgreSQL 导出全量表结果,怎么导 ?

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
怕晒的太阳

pg_dump -t 模式.表名 数据库 -a -f xxx.sql 只导出数据或者直接用copy

暂无图片 评论
暂无图片 有用 0
打赏 0
shunwahⓂ️

1、导出数据表(pg_dump)
导出表为txt文本

$ pg_dump -t httab -f httab.txt htdb
$ ll
-rw-rw-r--. 1 postgres postgres 429564 Aug 24 00:19 httab.txt
复制

导出表为dmp文件

$ pg_dump -t httab -FC -f httab.dmp htdb
$ ll
-rw-rw-r--. 1 postgres postgres 243696 Aug 24 00:22 httab.dmp
复制

导出表定义

$ pg_dump -t httab -s -f httab.metadata htdb
$ ll
-rw-rw-r--. 1 postgres postgres   1501 Aug 24 00:22 httab.metadata
复制
参数说明:

-t:指定表名
-f:指定导出文件名
-Fc:默认导出文件格式为文本,-Fc使用用户自定义格式
-s:只导出表定义
复制

注意:若想导出索引只能导出索引创建语句,不导出索引数据

2、恢复导出文件到数据库
根据导出格式不同,恢复命令也不相同
(1)恢复dmp格式文件(pg_restore)
删除当前数据库已有表

$ psql -c 'select count(1) from  httab' -Uhtuser htdb
 count 
-------
 10000
(1 row)
复制
$ psql -c 'drop table httab' -Uhtuser htdb
DROP TABLE
复制

将dmp格式文件恢复到数据库

$ pg_restore -Uhtuser -d htdb httab.dmp
$
复制

验证:

$ psql -c 'select count(1) from  httab' -Uhtuser htdb
 count 
-------
 10000
(1 row)
复制

(2)恢复txt格式文件(psql)
删除当前数据库已有表

$ psql -c 'drop table httab' -Uhtuser htdb
DROP TABLE
复制

将txt格式文件恢复到数据库

$ psql -Uhtuser htdb < httab.txt
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
COPY 10000
 setval 
--------
  10000
(1 row)

ALTER TABLE

复制

验证:

$ psql -c 'select count(1) from  httab' -Uhtuser htdb
 count 
-------
 10000
(1 row)
复制

补充说明:

pg_dump 实质是用 copy 命令跑的,只不过普通用户没有权限,可以用\copy

二者区别:

copy :使用pg数据库本地的文件
\copy :使用客户端本地的文件

https://blog.csdn.net/ly7472712/article/details/126785291

暂无图片 评论
暂无图片 有用 0
打赏 0
ora_221
2022-12-02
szrsu
2022-12-03

学习了!

暂无图片 评论
暂无图片 有用 4
打赏 0
szrsu
暂无图片

学习了

暂无图片 评论
暂无图片 有用 0
打赏 0
游湖
学习了
暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
关于错误日志中的提示的控制参数
回答 1
PostgreSQL默认的日志格式,由postgresql.conf中的logstatement、logstatement参数控制,用于标识记录的是SQL语句,与pgaudit无关。
developerworks上的文章怎么找
回答 2
https://developer.ibm.com/
libgssapi_krb5.so 报错在pg_bulkload时候出现的??
回答 1
你在postgres用户下编译试试,另外可以补充一下你的系统环境及PG版本
postgresql 分页时怎么指定一个字段内容排在第一位?
回答 1
select语句里,把想要排第一位的字段作为第一个被查询的字段
pg_stat_get_live_tuples 的活的记录数显示不对
回答 1
pgstatgetlivetuples函数返回表中当前&quot;活&quot;元组(可见且未被删除的行)的数量,您插入了4条数据且没有删除的话,pgstatgetlivetuples应为4,如果不是
pg中如何处理hashjoin的连接条件上的数据不均匀,如何处理?
回答 1
pg中也有直方图的统计信息,可以看下pgstats,pg基于这些信息生成执行计划。
pg中在走索引下和全表扫描下,同样的delete语句,加锁有不同吗?
回答 1
锁没区别,就是持有锁的时间长短问题。
PostgreSQL 为什么Archive 缓慢或不归档,问题的原因在哪里
回答 2
1.归档进程需要遍历所有.ready文件从而找到最老文件,在业务繁忙的机器且缓慢的备份存储下,就会有许多WAL文件归档滞后。2.如果archivecommand执行时出错,归档进程在重试前会等待1秒,
pg_event_trigger_ddl_commands() 的 command 列如何使用或显示?
回答 1
好问题,但是为什么不直接使用log(logstatementddl)功能呢?(postgres@[local])[sbtest]16:08:37CREATEORREPLACEFUNCTIONaaa()
postgreSQL 有图形的权限管理工具吗?
回答 3
pgadmin