我的更新语句是这个  “update QS_JLDZB set ny = '',jh = '(第3层)乌201',qx='102夹层枪',db='101队',skfs='测试井别1',sklx='TCP',
flrq='',jhrq='',flr='',jhr='',ch='2051',llr='',jsr='',
rzbz='是',cyc='',dl='射孔枪身(内部)',mc_gg_xh='射孔枪WD95夹层枪身',bz='' where id=638 ”不知道为什么会出现违反唯一约束条件的错误!!!ps:我将 id 和mc_GG_xh 联合设置为主键,为什么插入时不报错而更新时报错呢
请大家帮帮忙,谢谢啦

解决方案 »

  1.   

    你看下你的哪些列有唯一約束select constraint_name from user_constraints where table_name='QS_JLDZB' and constraint_type='U';
      

  2.   

    還有你的id為638,mc_gg_xh='射孔枪WD95夹层枪身'的記錄在你的表中存在嗎,如果存在肯定有這個錯誤了
    可選來看下select 1 from QS_JLDZB where id=638 and mc_gg_xh='射孔枪WD95夹层枪身';
      

  3.   

    --SQL语句如下:
    update QS_JLDZB 
        set ny = '',
            jh = '(第3层)乌201',
            qx='102夹层枪',
            db='101队',
            skfs='测试井别1',
            sklx='TCP',
            flrq='',
            jhrq='',
            flr='',
            jhr='',
            ch='2051',
            llr='',j
            sr='',
            rzbz='是',
            cyc='',
            dl='射孔枪身(内部)',
            mc_gg_xh='射孔枪WD95夹层枪身',
            bz='' 
      where id = 638;
    从SQL语句可以看出:id等于638的记录有多条,所以报错。
    楼主你自己不是也提到了“id 和mc_GG_xh 联合设置为主键”了吗?
      

  4.   

    从SQL语句可以看出:id等于638的记录有多条,所以报错
    楼主你自己不是也提到了“id 和mc_GG_xh 联合设置为主键”了吗?
      

  5.   

    是啊,是将id 和 mc_gg_xh联合设为主键,这样的话不是只有当id和mc_gg_xh都一样的时候才报错吗,现在就只有id是一样的啊,id+mc_gg_xh并不一样,求解!!!!