当前位置: 代码迷 >> Oracle管理 >> 对调主键列的值主键矛盾?
  详细解决方案

对调主键列的值主键矛盾?

热度:343   发布时间:2016-04-24 04:03:11.0
对调主键列的值主键冲突??
今天在公司,用pl/sql developer 查询表后编辑数据,直接用复制粘贴的方式把第一行和第二行的ID值交换后提交。
报主键冲突????ID列是唯一主键。
你们会这样吗?
我怎么感觉以前不这样,现在没环境没法测试。
到底谁和谁冲突?
但是将A和B交换后将其中一个随便改一下,再提交就不冲突了。
是A和B冲突了么?明明不一样不可能冲突啊。
求高人指教一下呢?
------解决思路----------------------
比如你A列的值是1,3 ; B列的值是1,2;你把B列复制到A列,A列复制到B列。A列的值是先插入1,2 再删除1,3 所以就报错。
你可以先把查询出来的值换到另一张表,删掉原有的数据在导入,或者用rowid更新试试。
------解决思路----------------------
这个是工具问题。pl/sql developer提供了edit data的功能,实际上你的操作在后台提交时,是根据rowid逐条执行更新操作的
因此,首先更新第一条,将id 更新成了第二条的ID,然后再更新第二条
而更新第一条时就会发生主键冲突
------解决思路----------------------
引用:
这个是工具问题。pl/sql developer提供了edit data的功能,实际上你的操作在后台提交时,是根据rowid逐条执行更新操作的
因此,首先更新第一条,将id 更新成了第二条的ID,然后再更新第二条
而更新第一条时就会发生主键冲突


分析的到位啊
------解决思路----------------------
逐条更新的,更新第一行时,第二行还是原来的。
------解决思路----------------------
引用:
这个是工具问题。pl/sql developer提供了edit data的功能,实际上你的操作在后台提交时,是根据rowid逐条执行更新操作的
因此,首先更新第一条,将id 更新成了第二条的ID,然后再更新第二条
而更新第一条时就会发生主键冲突


因为这个
  相关解决方案