我有一个表,当我describe
是:主键默认为NULL吗?它为什么被描述为这样?
mysql> DESC my_table;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| contact_id | int(11) | NO | PRI | NULL | auto_increment |
| location | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| state | varchar(2) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
我的问题是:为什么主键contact_id
的Default
显示为NULL
?
我创建了NOT NULL
列的表,并且Primary Key
无论如何都不能是NULL
。
Null
如何能NO
和Default
是NULL
?
如果没有其他定义,'NULL'总是默认值。 – 2013-04-06 11:51:12
@a_horse_with_no_name:我在创建时定义了“NOT NULL”。不知道你的意思 – Cratylus 2013-04-06 11:51:58
那里的'NULL'意味着_没有default_,而是默认是'NULL'。所以如果没有指定'contact_id',mysql会检查默认值,即NULL,那么它会抛出一个错误,因为'contact_id'不能为'NULL'。 – 2013-04-06 11:53:43