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

时间:2018-02-10 12:42:29

标签: postgresql pg-dump

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

@Inheritance(strategy = InheritanceType.JOINED)

接下来我有这样的表格:

PARENT_TABLE (id,created)

CHILD_A_TABLE (some_attr0,some_attr1)

CHILD_B_TABLE (some_attr2,some_attr3)

所以当我点击db>备份并选择生成带有选项列插入的数据,Postgres按以下顺序生成数据:

  1. CHILD_A_TABLE插入
  2. CHILD_B_TABLE插入
  3. PARENT_TABLE insert
  4. 但是我需要先将PARENT_TABLE插入。也是另一个表的问题。如果table引用另一个带外键的引用,则首先创建的插入引用表不包含数据。

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

1 个答案:

答案 0 :(得分:0)

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