使用pg_dump只从数据库中的一个表中获取insert语句

Rol*_*and 107 postgresql

我正在寻找一种方法,INSERT使用pg_dumpPostgreSQL 从数据库中的一个特定表中获取所有行作为语句.

例如,我有表A并且表AI中的所有行都需要作为INSERT语句,它还应该将这些语句转储到文件中.

这可能吗?

psm*_*ars 205

如果版本<8.4.0

pg_dump -D -t <table> <database>
Run Code Online (Sandbox Code Playgroud)

添加-a-t,如果你只想要插入,而不CREATE TABLE等来设置表摆在首位.

版本> = 8.4.0

pg_dump --column-inserts --data-only --table=<table> <database>
Run Code Online (Sandbox Code Playgroud)

  • 从PostgreSQL 8.4中删除了-d和-D选项(参见8.4.0发行说明).您现在必须使用"长"名称:pg_dump --column-inserts --data-only --table = <table> <database> (55认同)

Jam*_*111 30

如果要将插入操作转换为.sql文件:

  1. cd到您要.sql归档的位置
  2. pg_dump --column-inserts --data-only --table=<table> <database> > my_dump.sql

注意> my_dump.sql命令.这会将所有内容放入名为my_dump的sql文件中


小智 5

以防万一您使用远程访问并想要转储所有数据库数据,您可以使用:

pg_dump -a -h your_host -U your_user -W -Fc your_database > DATA.dump

它将创建一个包含所有数据库数据的转储并使用

pg_restore -a -h your_host -U your_user -W -Fc your_database < DATA.dump

考虑到您具有相同的结构,在您的数据库中插入相同的数据