转储以错误的顺序生成备份插入

Dump generate backup inserts in wrong order

我正在使用 Spring JPA 在 Postgres 数据库中创建 tables。我在父实体上使用此注释定义了父子之间的关系:

@Inheritance(strategy = InheritanceType.JOINED)

接下来我有table这样的:

PARENT_TABLE(id,已创建)

CHILD_A_TABLE (some_attr0, some_attr1)

CHILD_B_TABLE (some_attr2, some_attr3)

所以当我点击 db > backup 并选择 generate data with option column inserts 时,Postgres 按以下顺序生成数据:

  1. CHILD_A_TABLE 插入
  2. CHILD_B_TABLE 插入
  3. PARENT_TABLE 插入

但我需要先插入 PARENT_TABLE。另一个 tables 也有问题。如果 table 引用另一个外键,首先创建引用 table 的插入还不包含数据。

是否可以修复并设置 Postgres 以正确的顺序生成 tables 插入?

pg-dump 生成转储,因此您可以恢复所有数据,并在所有数据完成后创建索引和约束。您不能授予插入顺序。假设您有一个 table_a.b_id 引用 table_b.idtable_b.a_id 引用 table_a.id。你不能插入任何行,除非你禁用 FK(除非你有可延迟的约束并在事务中执行 - 但 pg_dump 不提供此类功能)