NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列创建中是否为NULL? [英] NULL vs DEFAULT NULL vs NULL DEFAULT NULL in MYSQL column creation?
问题描述
下面的sql表定义说明了由我公司的前开发人员开发的来自我的MYSQL数据库的create table语句之一.
Following sql table definition is illustrated one of create table statement from my MYSQL database which is developed by a former developer of my company.
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,
In there look at the statement price
DOUBLE NULL DEFAULT NULL,
我通常使用
price
DOUBLE NULL;
price
DOUBLE NULL;
如果我想启用该列以接受NULL值.
if I want to enable that column to accept NULL values.
那这3条语句之间有什么区别?
So what are the differences between these 3 statements?
1)price
DOUBLE NULL;
1) price
DOUBLE NULL;
2)price
双重默认NULL;
2) price
DOUBLE DEFAULT NULL;
3)price
DOUBLE NULL DEFAULT NULL;
3) price
DOUBLE NULL DEFAULT NULL;
非常感谢您.
推荐答案
没有区别. NULL DEFAULT NULL
是隐式默认值.
There is no difference. NULL DEFAULT NULL
is the implicit default.
- 如果未指定NULL或NOT NULL,则将该列视为已指定NULL
- 如果列定义中不包含任何显式的DEFAULT值,则MySQL按以下方式确定默认值:如果该列可以采用NULL作为值,则使用显式的DEFAULT NULL子句定义该列.
这篇关于NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列创建中是否为NULL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!