码迷,mamicode.com
首页 > 数据库 > 详细

数据库update的异常一例

时间:2014-12-26 22:47:51      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:

调查一列bug,偶然发现了update的一个特性:update t set a=a+1 where id=4; 这样一条简单的语句,也会发生让人意外的事情:

如果 a 的初始值为null时,无论你update多少次,a 的值始终是 null  !!!!!!

直接上图:

技术分享

 

测试了一下 mysql, sql server 2008都是一样的,处理方法类似,mysql 有 ifnull(a,0) ,sql server 中有 isnull(a,0) 方法:

update model_model 
  	set accuracy_num=ISNULL(accuracy_num,0) + 1, accuracy_total=ISNULL(accuracy_total,0) + #accuracyTotal:DECIMAL# 
  	where id=#id:BININT# and status=1

 

数据库update的异常一例

标签:

原文地址:http://www.cnblogs.com/digdeep/p/4187587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!