Следующее определение таблицы sql иллюстрируется одним из операторов create table из моей базы данных MYSQL, разработанной бывшим разработчиком моей компании.
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
DOUBLE NULL DEFAULT NULL,
Обычно я использую
price
DOUBLE NULL;
если я хочу, чтобы этот столбец принимал значения NULL.
Итак, каковы различия между этими тремя утверждениями?
1) price
DOUBLE NULL;
2) price
DOUBLE DEFAULT NULL;
3) price
DOUBLE NULL DEFAULT NULL;
Большое спасибо.