往数据库字段类型为“varchar”的设置非空+设置过默认值的字段插入“NULL”时,提示“[Err] 1048 - Column 'xxx' cannot be null”
但是奇怪的是,如果字段是“timestamp”类型,设置非空+设置默认值为“CURRENT_TIMESTAMP”,插入“NULL”就不会报错,会插入系统当前时间。
后面我测试了一下,得知MySQL只要往列插入值时,会覆盖默认值,就算这个值是“NULL”。那为什么timestamp类型没有被插入的“NULL”覆盖掉呢?
本文探讨了在 MySQL 数据库中,对于设置了非空约束且有默认值的 varchar 类型字段,尝试插入 NULL 值时会触发错误;而 timestamp 类型字段在相同条件下却能成功插入系统当前时间的现象。
往数据库字段类型为“varchar”的设置非空+设置过默认值的字段插入“NULL”时,提示“[Err] 1048 - Column 'xxx' cannot be null”
但是奇怪的是,如果字段是“timestamp”类型,设置非空+设置默认值为“CURRENT_TIMESTAMP”,插入“NULL”就不会报错,会插入系统当前时间。
后面我测试了一下,得知MySQL只要往列插入值时,会覆盖默认值,就算这个值是“NULL”。那为什么timestamp类型没有被插入的“NULL”覆盖掉呢?
6786
6186
1582

被折叠的 条评论
为什么被折叠?