今天学习mysql的时候遇到一个问题
如图,给name设置了not null,但是插入数据时不对它插入数据,却能成功插入数据,不报错。查看数据,是系统给了一个默认值 ,但是我并没有给它设置默认
值啊?
然后在另一台电脑上同样的操作,却又提示name不能为空,需要设置值,这是什么原因?mysql版本都是一样的,一个自动设置了默认值,一个没有
今天学习mysql的时候遇到一个问题
如图,给name设置了not null,但是插入数据时不对它插入数据,却能成功插入数据,不报错。查看数据,是系统给了一个默认值 ,但是我并没有给它设置默认
值啊?
然后在另一台电脑上同样的操作,却又提示name不能为空,需要设置值,这是什么原因?mysql版本都是一样的,一个自动设置了默认值,一个没有
你的语句不包含所有字段,所以mysql自动用默认字段帮你填充完毕,所以并不是 null , 你可用 is null 验证
mysql.ini文件
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
改成
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
就会出现报错情况
其实这个是mysql在帮你把null转换成''