有没有办法使用postgres在数据库中创建单个表的备份?如何?这也适用于pg_dump命令吗?
答案 0 :(得分:155)
使用--table
告诉pg_dump
它必须备份哪个表格:
pg_dump --host localhost --port 5432 --username postgres --format plain --ignore-version --verbose --file "<abstract_file_path>" --table public.tablename dbname
答案 1 :(得分:65)
如果您使用的是Ubuntu,
sudo su postgres
pg_dump -d <database_name> -t <table_name> > file.sql
确保您正在执行postgres
用户具有写权限的命令(例如:/tmp
)
修改强>
如果要将.sql转储到另一台计算机,可能需要考虑将所有者信息保存到.sql文件中。
您可以使用pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
答案 2 :(得分:24)
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table&gt; backup.sql
您可以对单个表进行备份,但我建议您备份整个数据库,然后恢复所需的表。备份整个数据库总是好的。
答案 3 :(得分:10)
答案 4 :(得分:0)
作为弗兰克·海肯(Frank Heiken)回答的补充,如果您希望使用INSERT
语句而不是copy from stdin
,则应指定--inserts
标志
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
请注意,由于它已弃用,因此我省略了--ignore-version
标志。
答案 5 :(得分:0)
您可以使用此命令
pg_dump --table=yourTable --data-only --column-inserts yourDataBase > file.sql
您应该根据情况更改您的Table,您的数据库
答案 6 :(得分:0)
我试图从 psql 命令提示符中运行 pg_dump,但我无法在 ubuntu 20.04 机器上的任何地方跟踪输出文件。我尝试通过 find / -name "myfilename.sql"
查找。
相反,当我从 /home/ubuntu 尝试 pg_dump 时,我在 /home/ubuntu
中找到了我的输出文件