我正在研究数据库迁移程序,我正在尝试将一个数据库迁移到另一个已创建表的数据库。更具体地说,我有两个数据库,几乎相同的表,一个是完整的,另一个是空的。我的问题是迁移表值按字母顺序进行处理。有些表有外键,如果这些表是从外键表中按字母顺序出现的,我就不能使用inser值。有没有办法禁用java或postgresql上的外键检查。任何帮助都会很棒。
答案 0 :(得分:2)
参照完整性是一个数据库属性,而不是JDBC属性 - 您需要在运行导入之前显式删除或禁用数据库上的FK约束,然后再重新启用它们。
最好先确定数据的层次结构,然后先从独立记录开始插入数据,然后在插入过程中将依赖记录链接到这些记录。
答案 1 :(得分:2)
如果我是对的,则无法在postgresql上禁用fk。正如@mcfinnigan所说,您可以在开始插入之前删除fk,或者可以使用DEFERRABLE键重新创建约束。请参阅postgresql CREATE TABLE documentation.
DEFFERABLE意味着,在交易完成之前不会检查fk。