以下是我公司前任开发人员开发的 MYSQL 数据库中一个创建表语句的 SQL 表定义示例。
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 条语句有什么不同呢?
price
DOUBLE NULL;price
DOUBLE DEFAULT NULL;price
DOUBLE NULL DEFAULT NULL;
price DOUBLE DEFAULT NULL NOT NULL
怎么办... 我不是在开玩笑,我实际上有一个定义成这样的数据库 :-) - John Henckel