我正在使用mysql
进行项目。当我做" DESC Table_name"时,我看到表格输出显示了该字段的Null
设置为No
,但然后将"默认值"设置为NULL
。一个字段如何没有 Null
,而默认为 Null
本身?
mysql> desc用户; -------------------- ----------------------- ------- ------------- ---------------------------------- ----------------------- |字段|类型|null |键|默认|额外| -------------------- ----------------------- ------- ------------- ---------------------------------- ----------------------- |id |int(10)未签名|否|pri |null |auto_increment ||create_at |时间戳|是||null |||Updated_at |时间戳|是||null |||电子邮件|Varchar(255)|否||null |||密码|Varchar(255)|否||null |||记住_token |Varchar(100)|是||null |||profile_pic |Varchar(255)|是||img/profile/profilepic.jpg |||Activation_Code |Varchar(255)|是|uni |null |||status_id |int(10)未签名|否|mul |1 |||profile_id |int(10)未签名|是|mul |null || -------------------- ----------------------- ------- ------------- ---------------------------------- ----------------------- 套装10行(0.00秒)
这是一个完美的法律组合。这意味着,当您尝试插入新行且未明确指定该列的值时,它将默认为null
,从而出错。这种组合通常被用作迫使您明确分配值的一种方式,而不仅仅是依赖默认值。
- 我们应该知道这一点:
-
Null(NO)
:表示本列无法接受" null"价值 -
Null(YES)
:表示此列可以接受" null"价值 -
Default
:表示本列的默认值:)
-
我们应该知道:在mysql中,空白不等于
NULL
,如果我们什么都没插入一列,它将一无所有(它不会插入a null'null; -
因此,当
Null(NO)
带有Default(NULL)
时,如果我们不将此值插入,则它将具有默认值" null"它与约束冲突,然后会抛出异常