我有一個表,當我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