郁闷的DB2的Update问题 DB2 Update错误,SQLSTATE=23502

         今天要跟新DB2的一列数据,跟新语句是update budgetindex a set code=(select code from index_test b where a.id=b.id),执行时一直提示错误sqlcode=23502,郁闷,感觉语句没问题呀。

         后来在网上查了一下,发现sqlcode=23502的含义是“插入或更新值为空,但该列不能包含空值”,但是查询了要跟新的表里的数据没有空值呀。继续郁闷中。

         查看要被跟新的表,发现要被跟新的字段不允许为空,突然想起来上次跟新时将一部分数据跟新成为空值啦。应该是跟新时被跟新的部分没有做完全限制,这样会导致不在要跟新的表里面的数据会被赋值为NULL,但是该字段不允许为空,所以肯定会报错。

         处理方法:对被跟新的部分做完全限制,语句改成:update (select id,code from budgetindex where id in (select id from  index_test)) a set code=(select code from index_test b where a.id=b.id)就没有问题啦。

         DB2的Update比较郁闷,这块只是给自己做个记录,同时也算抛砖引玉,欢迎大家拍砖。

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值