首页 > MySQL 的 某个字段数据类型为ENUM, 为这个字段设置默认值后,新插入数据后,为什么不会自动填充默认值?

MySQL 的 某个字段数据类型为ENUM, 为这个字段设置默认值后,新插入数据后,为什么不会自动填充默认值?

如题,我在一张表里设计了这样一张字段,枚举集合为('used','receive','invalid','deleted'),设置了默认字段receive,并且设置非空,sql语句如下:

`status` enum('used','receive','invalid','deleted') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT 'receive' COMMENT '使用状态'

当我在实际插入数据的时候,并没有去设置这个字段的值,结果是插入可以成功,但是查看插入数据的时候,发现这个字段的值为空,难道我设置了默认值,他不会自动把receive填充进去的吗?还有我之前设置了非空,那个字段显示为空,但是竟然插入成功了,这是为什么呢?


插入的时候不写该字段就行了呀~ 不要写insert into tb values(1,2,3,null);而应该写insert into tb (a,b,c) values(1,2,3),这样的话status就会被插入默认值receive了


你是不是用了ORM,去看下你的ORM中的model有没有配置默认值

把你show create table的结果贴出来
把你插入失败的sql语句贴出来

【热门文章】
【热门文章】