sql - 如何更新作为组合键的一部分并在oracle SQL中充当一个表的主键和其他表中的外键的列

标签 sql oracle hibernate

我有两个表 TableA 和 TableB,其中 TableA 有列 col1、col2、col3、col4、col5 和 col1、col2 和 col3 组合形成其主键。 TableA 和 TableB 在与其外键约束相同的列(col1、col2 和 col3)上具有一对多关系。现在如何在 SQL 和 Hibernate 中只更新 TableA 和 TableB 中的 col2 值?

最佳答案

无论是 hibernate 还是主键上的列数都无关紧要。如果已用作外键,则不能删除/编辑主键值。那是 CONSTRAINT FK VIOLATION ,而约束功能正是为了避免任何行错误地成为孤儿并保持数据完整性。

这需要分三步完成:

  • 使用您的新 PK 插入新行
  • 将所有与旧 PK 相关的 FK 更新为新 PK
  • 删除旧PK
  • 关于sql - 如何更新作为组合键的一部分并在oracle SQL中充当一个表的主键和其他表中的外键的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45511014/

    相关文章:

    php - ORA-12154 PHP OCI8 悲痛

    database - 有什么方法可以在 PL/SQL 中为开发应用 TDD 技术

    sql - ORA-22275错误: invalid LOB locator specified

    java - 为什么 @Basic(fetch=lazy) 在我的情况下不起作用?

    sql - 删除字符串中 "-"之前的字符 - SQL

    mysql - 使用内连接mysql获取值的总和

    php - 连接正忙于处理另一个 hstmt 错误的结果

    hibernate - Grails - 非空属性引用空值或 transient 值

    java - 如何提取隐藏在HibernateProxy后面的原始实体类?

    java - 如何向 Hibernate criteria api 查询添加优化器提示