下面的sql表定義說明了從我公司的一位前開發人員開發的MYSQL數據庫中創建表語句之一。NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列創建中爲NULL?
DROP TABLE IF EXISTS `classifieds`.`category_vehicles`;
CREATE TABLE `classifieds`.`category_vehicles`(
`adv_id_ref` BIGINT UNSIGNED NOT NULL,
`category_id_ref` TINYINT UNSIGNED NOT NULL,
`forsale_status` TINYINT (1) NOT NULL,
`vehicle_type_id_ref` TINYINT UNSIGNED NOT NULL,
`price` DOUBLE NULL DEFAULT NULL,
PRIMARY KEY (`adv_id_ref`)
) ENGINE = INNODB CHARSET = latin1 COLLATE = latin1_swedish_ci ;
在那裏看的聲明price
雙零DEFAULT NULL,
通常情況下,我使用
price
雙零;
如果我想啓用該列來接受NULL值。
那麼這三個陳述之間有什麼區別呢?
1)price
DOUBLE NULL;
2)price
DOUBLE DEFAULT NULL;
3)price
DOUBLE NULL DEFAULT NULL;
非常感謝。
「* price is a double and can not be null *」for the second expression is wrong。如果省略'NULL',則假定爲NULL(請參閱我的手冊中的引用) – 2014-09-22 07:00:36
@EJP對我來說似乎每個語句都是相同的。我仍然無法解壓。 :) – Sylar 2014-09-22 07:21:20
@Sylar他們* *是平等的。 – EJP 2016-09-14 04:31:10