暂无图片
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


请输入正文
提交
相关推荐
Postgresql的inet 的 LIKE怎么用?
回答 1
用text转成文本类型再like
Pacemaker的PostgreSQL一主多从读
回答 6
大佬,这种cls命令在哪查文档
大家业务上使用pgpool-II多吗?能实现自动切换vip漂移吗
回答 1
对的。那是太阳国开发的一套中间件。配置比较复杂。也可以使用repmgr来实现pg的高可用。
postgresql 创建表空间提示权限有问题,怎么解决?
回答 1
已采纳
这是目录权限的问题。首先确定pg服务的宿主用户(操作系统用户)是否有上诉路径的权限,其次表空间创建要独立与PGDATA目录路径之外,因为PGDATA目录下是有默认表空间。
pg中的三权分立怎么做?有了解的不?
回答 1
这里的三权分立可以理解为多权限分管吗?也就是安全策略。分立不同的角色对数据库进行管理:1、为每个应用程序创建单独的角色确保在必要时可以分离用户和数据的一种方法是为每个应用程序分配不同的角色。2、将用户
postgresql 如何做db双活?
回答 1
pg集群
pgadmin4 backup server 后如何恢复?
回答 1
backup对应的有restore菜单
postgreSQL 库可以做主备吗?
回答 2
可以的,请参考:https://www.modb.pro/db/647647
PostgreSQL 10没有jsonb类型,怎么解决?
回答 3
已采纳
建议升级pg10或者换成其他数据类型,比如blob
pg中的autovacuum_freeze_max_age,如何正确理解??
回答 1
主要用途是调低触发freeze,预防不能进行事务号的“环绕”,也就是解决事务回卷问题。比如pg13之前,insertonly表就可能会产生。