2

我正在研究数据库迁移程序,我正在尝试将一个数据库迁移到另一个已经创建表的数据库。更具体地说,我有两个具有几乎相同表的数据库,一个已满,另一个为空。我的问题是迁移表值按字母顺序处理。有些表有外键,如果这些表按字母顺序从外键表中出现,我不能插入值。有什么方法可以禁用 java 或 postgresql 的外键检查。任何帮助都会很棒。

4

2 回答 2

2

参照完整性是一个 DB 属性,而不是 JDBC 属性 - 您需要在运行导入之前显式删除或禁用数据库上的 FK 约束,然后再重新启用它们。

确定数据的层次结构并首先从独立记录开始插入数据,然后在插入期间将相关记录链接到这些记录可能是一个更好的主意。

于 2012-04-04T09:57:19.473 回答
2

如果我是对的,就不可能在 postgresql 上禁用 fk。正如@mcfinnigan 所说,您可以在开始插入之前删除 fk ,也可以使用 DEFERRABLE 键重新创建约束。请参阅postgresql CREATE TABLE 文档。

DEFFERABLE 意味着,在事务完成之前不会检查 fk。

于 2012-04-04T10:02:39.710 回答