以下sql表定义说明了我的MYSQL数据库中的create table语句之一,该数据库由我公司的前开发人员开发。
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值。
那么这3个陈述之间有什么区别?
1)price
DOUBLE NULL;
2)price
DOUBLE DEFAULT NULL;
3)price
DOUBLE NULL DEFAULT NULL;
非常感谢。
答案 0 :(得分:16)
没有区别。 NULL DEFAULT NULL
是隐式默认值。
From the CREATE TABLE documentation:
From the "Data Type Default Values" chapter:
答案 1 :(得分:9)
price DOUBLE NULL;
price
是一个double,可以为null,默认值为null。
price DOUBLE DEFAULT NULL;
price
是一个double,可以为null,默认值为null。
price DOUBLE NULL DEFAULT NULL;
price
是一个double,可以为null,默认值为null。