我正在使用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)
答案 0 :(得分:1)
这是完全合法的组合。这意味着当您尝试插入新行而不显式指定此列的值时,它将默认为null
,从而出错。这种组合通常用作强制您将值显式分配给列的方法,而不仅仅是依靠默认值。