NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列创建中是否为NULL? [英] NULL vs DEFAULT NULL vs NULL DEFAULT NULL in MYSQL column creation?

查看:148
本文介绍了NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列创建中是否为NULL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆