如何在 postgres 数据库中创建单个表的备份?

发布于 2024-09-18 04:33:39 字数 60 浏览 11 评论 0原文

有没有办法使用 postgres 创建数据库中单个表的备份?又如何呢?这也适用于 pg_dump 命令吗?

Is there a way to create a backup of a single table within a database using postgres? And how? Does this also work with the pg_dump command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

终弃我 2024-09-25 04:33:39

使用 --table 告诉 pg_dump 需要备份哪个表:

pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname

Use --table to tell pg_dump what table it has to backup:

pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname
手心的温暖 2024-09-25 04:33:39

如果您使用的是 Ubuntu,

  1. 请登录到您的 postgres 用户 sudo su postgres
  2. pg_dump -d; -t <表名> > file.sql

确保您在 postgres 用户具有写入权限的情况下执行命令(例如:/tmp

编辑

如果您想将 .sql 转储到另一台计算机上,您可能需要考虑跳过将所有者信息保存到 .sql 文件中。

您可以使用 pg_dump --no-owner -d; -t <表名> >文件.sql

If you are on Ubuntu,

  1. Login to your postgres user sudo su postgres
  2. pg_dump -d <database_name> -t <table_name> > file.sql

Make sure that you are executing the command where the postgres user have write permissions (Example: /tmp)

Edit

If you want to dump the .sql in another computer, you may need to consider skipping the owner information getting saved into the .sql file.

You can use pg_dump --no-owner -d <database_name> -t <table_name> > file.sql

一袭水袖舞倾城 2024-09-25 04:33:39

pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table >
备份.sql

您可以备份单个表,但我建议备份整个数据库,然后恢复您需要的表。备份整个数据库总是好的。

9种使用方法pg_dump

pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table >
backup.sql

You can take the backup of a single table but I would suggest to take the backup of whole database and then restore whichever table you need. It is always good to have backup of whole database.

9 ways to use pg_dump

我不吻晚风 2024-09-25 04:33:39

如果您喜欢图形用户界面,可以使用 pgAdmin III (Linux/Windows/OS X)。只需右键单击您选择的表,然后“备份”即可。它将为您创建一个 pg_dump 命令。

输入图像描述这里

在此处输入图像描述

在此处输入图像描述

If you prefer a graphical user interface, you can use pgAdmin III (Linux/Windows/OS X). Simply right click on the table of your choice, then "backup". It will create a pg_dump command for you.

enter image description here

enter image description here

enter image description here

情绪操控生活 2024-09-25 04:33:39

你可以使用这个命令,

pg_dump --table=yourTable --data-only --column-inserts yourDataBase > file.sql

你应该将你的表,你的数据库更改为你的情况

you can use this command

pg_dump --table=yourTable --data-only --column-inserts yourDataBase > file.sql

you should change yourTable, yourDataBase to your case

千笙结 2024-09-25 04:33:39

作为 Frank Heiken 答案的补充,如果您希望使用 INSERT 语句而不是从 stdin 复制,那么您应该指定 --inserts标志

pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "" --table public.tablename --inserts dbname

请注意,我省略了 --ignore-version 标志,因为它已被弃用。

As an addition to Frank Heiken's answer, if you wish to use INSERT statements instead of copy from stdin, then you should specify the --inserts flag

pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname

Notice that I left out the --ignore-version flag, because it is deprecated.

三生一梦 2024-09-25 04:33:39

我是这样做的。

pg_dump -h localhost -U postgres -p 5432 -t table database  > path/to/store/name.sql

如果您不希望发生这种情况,您可以编辑此 sql 文件并删除表创建命令和其他字段的设置,然后运行以下命令将数据插入其他数据库中。

 psql -h localhost -U postgres -p 5432 database < path/to/store/name.sql

Here is how I do it.

pg_dump -h localhost -U postgres -p 5432 -t table database  > path/to/store/name.sql

You can edit this sql file and remove the table creation commands and setting of other fields if you don't want that to happen and later run the below command to insert the data in the other database.

 psql -h localhost -U postgres -p 5432 database < path/to/store/name.sql
﹎☆浅夏丿初晴 2024-09-25 04:33:39

使用以下命令获取表转储的压缩版本:

pg_dump -h localhost -p 5432 -U <username> -d <dbname> -t <tablename> -Fc -f backup.out

Use the following command to get the compressed version of the table dump :

pg_dump -h localhost -p 5432 -U <username> -d <dbname> -t <tablename> -Fc -f backup.out
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文