我们再创建一个mysql字段时,如果不对这个字段设置默认值,则插入如数据时,未填写此字段内容,其默认值一般都是NULL。
为此我们后期维护会遇到以下问题:(例如 此字段叫 A)
- 查询问题:查询是否为空时,int型必须写成 WHERE A=0 OR A IS NULL;字符串型:必须写成 WHERE A="" OR A IS NULL
是不是感觉很麻烦。但是最麻烦的还是更新。 - 更新问题:比如执行 UPDATE 表名 SET A=A+1时,你会发现值为NULL的依旧还是NULL,并没有跟想象中的那样变成1。这就很尴尬了,已经是程序BUG了。你必须 UPDATE 表名 SET A=IF(A IS NULL,1,A+1)
所以我们设计数据库时,做好不要图省事,尽量要有默认值而非用NULL