日期:2014-05-17  浏览次数:20445 次

关于mysql的not null字段问题
今天遇到了一个很蛋疼的问题,关于mysql数据库的,一个设置了not null的整型字段,默认值自定义为 2,当我用insert语句向该字段插入null值的时候,为什么显示的是系统默认自动生成的整型默认值 0,而不是我自定义的默认值 2,非常纠结,如果我不对该字段做任何操作,就会自动填充自定义的默认值,为什么会这样,求高人指点,谢谢。。。。

------解决方案--------------------
null值 也是值, 即不会用默认值。如果你留空,则就会用默认值。
这个很好理解 啊
------解决方案--------------------
null 表示什么都没有
既然对数值类型字段设置了not null
那么什么都没有在数学中不就是 0 吗?
------解决方案--------------------
你若是自定议默认值了,别设为not NULL,插入的时候直接不带这字段,就是默认值
不能为空意思就得须插入值哪怕是空值,插入值了默认值就没啥用了
------解决方案--------------------
探讨

workId` int(10) unsigned NOT NULL default '3'

请问我向这个字段插入null值的时候,为什么会变成0?

引用:

你若是自定议默认值了,别设为not NULL,插入的时候直接不带这字段,就是默认值
不能为空意思就得须插入值哪怕是空值,插入值了默认值就没啥用了