由于外键约束,java数据库插入失败
我正在开发数据库迁移程序,我正在尝试将一个数据库迁移到另一个已经创建了表的数据库。更具体地说,我有两个几乎相同的表的数据库,一个是满的,另一个是空的。我的问题是迁移表值按字母顺序处理。有些表有外键,如果这些表在外键表的字母前面,我就不能插入值。有没有办法禁用java或postgresql上的外键检查。任何帮助都会很好
你可以在下面搜索框中键入要查询的问题!
我正在开发数据库迁移程序,我正在尝试将一个数据库迁移到另一个已经创建了表的数据库。更具体地说,我有两个几乎相同的表的数据库,一个是满的,另一个是空的。我的问题是迁移表值按字母顺序处理。有些表有外键,如果这些表在外键表的字母前面,我就不能插入值。有没有办法禁用java或postgresql上的外键检查。任何帮助都会很好
# 1 楼答案
引用完整性是一个DB属性,而不是JDBC属性-在运行导入之前,需要显式删除或禁用数据库上的FK约束,然后再重新启用它们
最好确定数据的层次结构,先从独立记录开始插入数据,然后在插入过程中将从属记录链接到这些记录
# 2 楼答案
如果我是对的,就不可能在postgresql上禁用fk。正如@mcfinnigan所说,您可以在开始插入之前删除fk,也可以使用可延迟键重新创建约束。请参阅postgresql CREATE TABLE documentation.
可解除意味着,在事务完成之前不会检查fk