我正在使用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按以下顺序生成数据:
但是我需要先将PARENT_TABLE插入。也是另一个表的问题。如果table引用另一个带外键的引用,则首先创建的插入引用表不包含数据。
是否可以修复,并设置Postgres以正确的顺序生成表插入?
答案 0 :(得分:0)
pg-dump
生成转储,因此您将恢复所有数据,并且在完成所有数据后,它会创建索引和约束。您无法授予插入顺序。假设您有table_a.b_id
引用table_b.id
和table_b.a_id
引用table_a.id
。除非您禁用FK,否则您无法插入任何行(除非您有可延迟的约束并在事务中执行 - 但pg_dump
不提供此类功能)