首页 > 代码库 > 数据库字段设置为<非空><默认值>
数据库字段设置为<非空><默认值>
为什么数据库要设置默认值呢?因为我们希望在插入数据时,有意或无意间被忽略的字段能够交由MySQL按我们事先预想的方式处理,例如一些默认正常状态码、用户插入数据时候尚未设置的文本字段,诸如此类。
假设student表里有一个字段score被设置为<非空><默认值>,插入一条数据记录时,score字段值为空<‘‘>,那这时score的字段值为<‘‘>还是<默认值>?
设置默认值的作用只有在忽略了字段时才会发挥作用。何为忽略了字段,就是在写SQL插入语句的时候,不写要忽略的字段的字段名,例如:有一个student表,有字段id,name,age,score。score设置了默认值99,插入一条语句,insert into student (name,age)values(‘tom‘,3),这时忽略了score字段(id字段设置了主键和自动增长),mysql数据库就会按照事先设置的默认值插入到数据库中。
所以以上问题的答案是<‘‘>。
因为NULL跟‘‘是完全不一样的,NULL表示未知,没有类型可言;而‘‘是有类型的,表示一个空的字符串。所以,在插入有默认值的字段时,插入值为‘‘时,依然会插入到数据库中。
而实际上数据库中的<空>表示的是NULL。
例如,当mysl数据库执行insert into student(name,age,score)values(‘tom‘,3,null)时会报错:#1048 - Column ‘score‘ cannot be null。
数据库字段设置为<非空><默认值>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。