如何更新作为组合键的一部分的列,并作为一个表的主键和oracle SQL

时间:2017-08-04 15:53:42

标签: sql oracle hibernate

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

1 个答案:

答案 0 :(得分:2)

无论是休眠还是主键上的列数都无关紧要。如果已将主键值用作外键,则无法删除/编辑主键值。这是一个CONSTRAINT FK VIOLATION,并且约束函数正是为了避免任何行成为孤儿错误并保持数据完整性。

这需要分三步完成:

  • 使用新PK插入新行
  • 将与旧PK相关的所有FK更新为新PK
  • 删除旧PK