是否有一种方法可以使用postgres在数据库中创建单个表的备份?以及如何?这也适用于pg_dump命令吗?
使用——table告诉pg_dump需要备份哪个表:
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table > backup.sql
您可以对单个表进行备份,但我建议对整个数据库进行备份,然后恢复您需要的任何一个表。对整个数据库进行备份总是好的。
9种使用pg_dump的方法
如果你用的是Ubuntu,
登录到你的postgres用户sudo su postgres Pg_dump -d <database_name> -t <table_name> > file.sql
确保执行的命令是postgres用户有写权限的(例如:/tmp)。
Edit
如果您想将.sql转储到另一台计算机中,您可能需要考虑跳过将所有者信息保存到.sql文件中。
可以使用pg_dump——no-owner -d <database_name> -t <table_name> > file.sql
如果您更喜欢图形用户界面,您可以使用pgAdmin III (Linux/Windows/OS X),只需右键单击您选择的表,然后“备份”。它将为您创建一个pg_dump命令。
作为Frank Heiken回答的补充,如果你希望使用INSERT语句而不是从stdin复制,那么你应该指定——inserts标志
Pg_dump——host localhost——port 5432——username postgres——format plain——verbose——file "<abstract_file_path>"——table public。表名——插入dbname
注意,我省略了——ignore-version标志,因为它已弃用。
您可以使用该命令
pg_dump --table=yourTable --data-only --column-inserts yourDataBase > file.sql
你应该改变你的表,你的数据库到你的情况
使用以下命令获取表转储的压缩版本:
pg_dump -h localhost -p 5432 -U <username> -d <dbname> -t <tablename> -Fc -f backup.out
我是这样做的。
pg-dump -h localhost -U postgres -p 5432 -t table database > path/to/store/name.sql
像这样运行
psql -h localhost -U postgres -p 5432 database < path/to/store/name.sql
推荐文章
- Postgres唯一约束与索引
- 使用电子邮件地址为主键?
- 选择postgres中字段的数据类型
- 如何在SQL Server中恢复到不同的数据库?
- 如何在PostgreSQL中查看视图的CREATE VIEW代码?
- 错误:没有唯一的约束匹配给定的键引用表"bar"
- 如何使用新的PostgreSQL JSON数据类型中的字段进行查询?
- 如何彻底清除和重新安装postgresql在ubuntu?
- 分组限制在PostgreSQL:显示每组的前N行?
- IN与PostgreSQL中的ANY运算符
- PSQLException:当前事务被中止,命令被忽略,直到事务块结束
- 如何备份docker容器的数据卷?
- 添加布尔列到表集默认
- 库未加载:/usr/local/opt/readline/lib/libreadline.6.2.dylib
- 为什么我们需要像RabbitMQ这样的消息代理而不是像PostgreSQL这样的数据库?