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转换成''

null和空字符串是不一样的概念

我也出现了,老哥解决了么