mysql多条数据插入时 null 值处理

2017-06-02  本文已影响27人  laravel

结论: mysql在多条数据同时插入的情况下,可以向not null选项的字段插入null值

  1. 数值类型转化为 0 , 不会转化为该列默认值
  2. 字符串类型转化为 "",不会转化为该列默认值

表结构设计如下

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

上一篇 下一篇

猜你喜欢

热点阅读