当字段定义中没有default值时,某些情况下mysql会自动给这个字段设置default值。
下面分两种情况讨论:
-
当字段可以为null值时:
那么这个字段的default值就是null,相当于有个default null约束;也就是说,以下几种字段定义具有相同含义;
columnname type columnname type NULL columnname type DEFAULT NULL columnname type NULL DEFAULT NULL
-
当字段不可以为null值时(有not null约束):
前提:当在insert语句中没有给这个字段任何值时,或者在update语句中给这个字段一个null值时:- 当处于strict mode时,会报错;
- 当不处于strict mode时,会给这个字段它的类型对应的默认值(如果是int, 默认值就是0)