我工作的数据库迁移程序,我想一个数据库迁移到另一个数据库whoose已经创建的表。更具体地说,我有两个数据库几乎相同的表,一个是满的,另一个是空的。我的问题是迁移表值是按字母顺序进行的。有些表具有外键,如果这些表是从外键表中按字母顺序排列的,那么我不能输入值。有什么办法可以禁用java或postgresql的外键检查。任何帮助都会很棒。数据库插入失败的原因为外键约束
2
A
回答
2
如果我是正确的,有没有可能在PostgreSQL上禁用FK。正如@mcfinnigan所说,你可以在开始插入之前删除fk,或者你可以用DEFERRABLE键重新创建一个限制。请参阅postgresql CREATE TABLE documentation.
DEFFERABLE手段,FK将不检查,直到完成交易。
2
参照完整性是一个数据库属性,而不是JDBC属性 - 你需要运行您导入之前显式删除或禁用对数据库的FK约束,然后重新启用它们之后。
这可能是一个更好的主意,以确定您的数据的层次结构和插入数据开始与独立的记录,然后再插入过程中的相关记录链接到这些。
+0
感谢。我会尝试第一个。其次可能如此复杂。 – mbaydar 2012-04-04 10:01:35
相关问题
- 1. 使用phpMyAdmin复制数据库失败,因为外键约束
- 2. 插入外键约束失败
- 3. 外键约束消失的原因
- 4. 插入数据库约束失败
- 5. 导入数据库时导致外键约束失败,导出实体失败
- 6. 外键约束失败
- 7. 外键约束与失败
- 8. 外键约束失败
- 9. 外键约束失败(MySQL)
- 10. 外键约束失败
- 11. Magento导入外键约束失败
- 12. 插入数据与外键约束
- 13. 延误的原因是外键约束
- 14. 为什么外键约束失败?
- 15. 数据库外键约束
- 16. 休眠@Version导致数据库外键约束失败
- 17. SQL约束插入失败
- 18. 确定哪些多行插入的值失败外键约束
- 19. 插入约束失败nFOREIGN KEY约束失败尽管播种数据
- 20. 不能将值插入表,外键约束不断失败
- 21. 外键约束失败,并在MySQL中插入选择
- 22. 插入在相同外键结果多行“约束失败”
- 23. 插入值时外键约束失败和错误消息
- 24. MySQL的外键约束失败
- 25. Laravel MySQL的外键约束失败
- 26. sqlite3的“外键约束失败”
- 27. 插入失败:无法添加或更新子行:外键约束失败
- 28. Android的Sqlite数据库 - 约束失败
- 29. 外键存在时为什么'外键约束失败'?
- 30. 更改表,但外键约束失败
是否有更新声明可以设置表可推迟? – mbaydar 2012-04-04 10:12:31
您不能修改表上的约束。只有你可以添加或删除alter table语句。 ALTER TABLE ADD XXX约束fk_xxx [...]或ALTER TABLE XXX DROP约束fk_xxx。您必须使用DEFFERABLE键来限制重新定义表格。然后,如果使用DEFFERABLE键创建约束,则应该调用“SET CONSTRAINTS DEFERRED”。 – Aykut 2012-04-04 10:18:01