关于mysql的not null字段问题 今天遇到了一个很蛋疼的问题,关于mysql数据库的,一个设置了not null的整型字段,默认值自定义为 2,当我用insert语句向该字段插入null值的时候,为什么显示的是系统默认自动生成的整型默认值 0,而不是我自定义的默认值 2,非常纠结,如果我不对该字段做任何操作,就会自动填充自定义的默认值,为什么会这样,求高人指点,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 null值 也是值, 即不会用默认值。如果你留空,则就会用默认值。这个很好理解 啊 但请问为甚么我插入null的时候,却显示的是 0? 把你的数据库结构导出成SQL语句,贴上来看下。 null 表示什么都没有既然对数值类型字段设置了not null那么什么都没有在数学中不就是 0 吗? CREATE TABLE `order_tele` ( `orderId` int(11) NOT NULL auto_increment, `dormArea` varchar(4) NOT NULL, `dormBase` varchar(5) NOT NULL, `dornNumber` varchar(20) NOT NULL default '0', `teleNumber` varchar(20) NOT NULL default '0', `computerType` varchar(20) NOT NULL, `bookTime` varchar(50) NOT NULL, `faulDesc` char(1) NOT NULL, `workId` int(10) unsigned NOT NULL default '3', `sex` char(2) NOT NULL default '男', PRIMARY KEY (`orderId`)) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; 你若是自定议默认值了,别设为not NULL,插入的时候直接不带这字段,就是默认值不能为空意思就得须插入值哪怕是空值,插入值了默认值就没啥用了 workId` int(10) unsigned NOT NULL default '3'请问我向这个字段插入null值的时候,为什么会变成0? 楼主,看下面的手册http://cn.php.net/manual/zh/language.types.null.php not null 你又要给它null 它不接受的 这个字段类型是int,你给它非int类型的东西当然是0了 我懂了。原来是我搞错了,嗯,一个设置了not null的字段,如果赋null值是会报错的,如果赋‘null’,字符串赋进整型,进行类型转换,变成0. mysql 默认在你输入类型不匹配的时候采用最优值。 感觉就是mysql根据unsigned int和not null纠结之后的结果, 还是直接在表明后规定字段后由mysql采用默认值比较通用的感觉、 php如何实现分目录存放文件 请教在windows7下IIS7.5+PHP5.2+MSSQL的配置方法 有关dede问题希望大哥大姐多多指教啊,小弟刚来北京闯荡不想下岗 我这样的条件,做怎么样的工作较为合适? 如何根据日期得知是星期几 怎么用php实现server push? PHP用ADO 连接ACCESS 数据库问题 如何把php,mysql和wml联系起来呢。给位高手 哪里有特别详细的PHP手册(不管中英文,千万别让我去在线查找的)? json_decode() 空,求解 一进来就看见两个表单问题,其实我也是冲着表单问题来的呀 表单提交
这个很好理解 啊
既然对数值类型字段设置了not null
那么什么都没有在数学中不就是 0 吗?
`orderId` int(11) NOT NULL auto_increment,
`dormArea` varchar(4) NOT NULL,
`dormBase` varchar(5) NOT NULL,
`dornNumber` varchar(20) NOT NULL default '0',
`teleNumber` varchar(20) NOT NULL default '0',
`computerType` varchar(20) NOT NULL,
`bookTime` varchar(50) NOT NULL,
`faulDesc` char(1) NOT NULL,
`workId` int(10) unsigned NOT NULL default '3',
`sex` char(2) NOT NULL default '男',
PRIMARY KEY (`orderId`)
) ENGINE=MyISAM AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
不能为空意思就得须插入值哪怕是空值,插入值了默认值就没啥用了
http://cn.php.net/manual/zh/language.types.null.php