当前位置: 代码迷 >> Java Web开发 >> 主键更新有关问题
  详细解决方案

主键更新有关问题

热度:1765   发布时间:2013-02-25 21:13:36.0
主键更新问题
SSH中我创建一个学生表,以学号为主键,加入我插入了一条学生的数据,SSH中更新学号时发生异常,信息如下:Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1。是不是SSH不能直接更新主键,只能先删除,再插入一条主键更新的数据?是不是只能学生表用自增列作为主键,这样可以随意更改学号?有没有什么办法可以直接更新主键?

------解决方案--------------------------------------------------------
主键是一条记录的标识符,而不应具有业务含义,这是数据表设计最重要的原则之一。
------解决方案--------------------------------------------------------
经常会根据主键进行查询,主键确定了记录的唯一性,如果经常变换,在增加个id作为主键
------解决方案--------------------------------------------------------
主键是唯一的,不可更改的。
想要更改学号的话,还是不要把它作为主键吧。
  相关解决方案