那么默认值是不起作用的.
所以,
在插入数据时如果不指定那个字段的值,
那么其值肯定为null.
还有,
数据库字段的运算中,
null与任何值运算的结果都是null,
这点要切记.
可以使用isnull函数指定在其值为null情况下的取值:
update
tablename
set
num
=
isnull(num,
0)
+
接收到的数
where
id=xxx
也可以使用case
when来进行条件判断取值:
update
tablename
set
num
=
(
case
when
num
is
null
then
0
when
num
>
0
then
num
else
小于等于0情况下的值
end
)
+
接收到的数
where
id=xxx
允许空值的意思。
允许空值和有默认值并不冲突,插入数据时如果指定使用默认值,它会使用这个默认值0,如果插入数据时不指定这一列,它会保持空值。
空值是不占用空间的,MySQL中的NULL其实是占用空间的。
扩展资料:
使用NULL可以区分“没有输入数据”和“输入空数据”, 差异在于:
NULL的长度就是NULL,空字符串的长度为0。
一串NULL数据比空字符串优先排序。
COUNT(message)会将空字符串计数进去,但是不会将NULL数据们计入。
可以使用绑定变量搜索某个空字符串,但是不可以这样搜索NULL。
在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于 *** 作符的文档中以及表达式的函数中作了其他规定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)