zoukankan      html  css  js  c++  java
  • 数据库字段设置为<非空><默认值>

    为什么数据库要设置默认值呢?因为我们希望在插入数据时,有意或无意间被忽略的字段能够交由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

  • 相关阅读:
    第二次
    第一次
    win下less自动编译脚本
    厦门攻略游记
    npm常用命令
    青岛旅行规划及玩后感
    kissynode run on windows解决方案,contextify nodejs windows solution
    win nodejs下 findit只返回第一个文件问题
    jetty自动添加path的问题
    微博输入框统计
  • 原文地址:https://www.cnblogs.com/TimeStory/p/3992339.html
Copyright © 2011-2022 走看看