转储PostgreSQL表和所有引用的数据
我的目标是转储所有模式,但只转储特定表的一些数据 但是,当我执行转储PostgreSQL表和所有引用的数据,postgresql,Postgresql,我的目标是转储所有模式,但只转储特定表的一些数据 但是,当我执行pg_dump-t table_name时,这只转储table_name的数据,而不转储来自其他表(外键)的任何引用数据 检索表名的数据和所有引用数据的最简单解决方案是什么?当然,我只希望被引用的数据被转储,而不是被引用表的全部数据 编辑:我忘了提到,在某些情况下,我还希望能够检索引用行的所有数据(另一种方式)。我可以想到的一种方法是: pg_dump -t table_name --Get only schema definit
pg_dump-t table_name
时,这只转储table_name
的数据,而不转储来自其他表(外键)的任何引用数据
检索表名
的数据和所有引用数据的最简单解决方案是什么?当然,我只希望被引用的数据被转储,而不是被引用表的全部数据
编辑:我忘了提到,在某些情况下,我还希望能够检索引用行的所有数据(另一种方式)。我可以想到的一种方法是:
pg_dump -t table_name
--Get only schema definition of referenced table
pg_dump -t other_table -s
--In psql to get only data referenced in child table.
\copy (select * from other_table where ref_key in (select distinct on(ref_fk) ref_fk from table_name)) to 'referenced_data.sql';
我能想到的一种方法是:
pg_dump -t table_name
--Get only schema definition of referenced table
pg_dump -t other_table -s
--In psql to get only data referenced in child table.
\copy (select * from other_table where ref_key in (select distinct on(ref_fk) ref_fk from table_name)) to 'referenced_data.sql';
是的,这就是我目前正在做的。我只是希望我不必手工操作,因为我需要对多个表执行此操作。
pg_dump
不会为您执行此操作。你需要做一些以上的变化。是的,这就是我目前正在做的。我只是希望我不必手工操作,因为我需要对多个表执行此操作。pg_dump
不会为您执行此操作。你需要做以上的一些变化。你在运行哪个版本的postgres atm?它是postgresql 12你在运行哪个版本的postgres atm?它是postgresql 12