mysql中的desc表说Null是否但默认为NULL?

时间:2017-03-14 20:00:12

标签: mysql sql null default default-value

我正在使用mysql作为项目。当我执行' desc table_name'时,我看到表格输出显示该字段的Null设置为No,但接着是'默认'设置为NULL。字段如何没有Null但默认为Null本身?

mysql> desc users;                                                                                 
+-----------------+------------------+------+-----+----------------------------+----------------+  
| Field           | Type             | Null | Key | Default                    | Extra          |  
+-----------------+------------------+------+-----+----------------------------+----------------+  
| id              | int(10) unsigned | NO   | PRI | NULL                       | auto_increment |  
| created_at      | timestamp        | YES  |     | NULL                       |                |  
| updated_at      | timestamp        | YES  |     | NULL                       |                |  
| email           | varchar(255)     | NO   |     | NULL                       |                |  
| password        | varchar(255)     | NO   |     | NULL                       |                |  
| remember_token  | varchar(100)     | YES  |     | NULL                       |                |  
| profile_pic     | varchar(255)     | YES  |     | img/profile/profilepic.jpg |                |  
| activation_code | varchar(255)     | YES  | UNI | NULL                       |                |  
| status_id       | int(10) unsigned | NO   | MUL | 1                          |                |  
| profile_id      | int(10) unsigned | YES  | MUL | NULL                       |                |  
+-----------------+------------------+------+-----+----------------------------+----------------+  
10 rows in set (0.00 sec)                                                                          

1 个答案:

答案 0 :(得分:1)

这是完全合法的组合。这意味着当您尝试插入新行而不显式指定此列的值时,它将默认为null,从而出错。这种组合通常用作强制您将值显式分配给列的方法,而不仅仅是依靠默认值。