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