结论: mysql在多条数据同时插入的情况下,可以向not null选项的字段插入null值
- 数值类型转化为 0 , 不会转化为该列默认值
- 字符串类型转化为 "",不会转化为该列默认值
表结构设计如下
CREATE TABLE `tb3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(11) NOT NULL DEFAULT '-1',
`c2` varchar(255) NOT NULL DEFAULT 'nil',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
执行如下sql
insert into tb3(c1,c2) values(null,null),(2,null)
查询出来数据如下
插入单条数据并无此问题,会直接报错
如insert into tb3(c1,c2) values(null,null)
会报[Err] 1048 - Column 'c1' cannot be null
sql_mode : NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
网友评论