【发布时间】:2014-09-22 06:45:12
【问题描述】:
以下 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 ;
在里面看看priceDOUBLE NULL DEFAULT NULL的声明,
我通常使用:
price双空;
如果我想让该列接受 NULL 值。
那么这3种说法有什么区别呢?
-
price双空; -
price双重默认空值; -
priceDOUBLE NULL DEFAULT NULL;
【问题讨论】:
-
你忘记了一种可能性......
price DOUBLE DEFAULT NULL NOT NULL呢......我不是你,我实际上有一个这样定义的数据库:-)