gpt4 book ai didi

mysql - MYSQL 列创建中的 NULL 与 DEFAULT NULL 与 NULL DEFAULT NULL?

转载 作者:IT老高 更新时间:2023-10-28 23:52:44 30 4
gpt4 key购买 nike

下面的 SQL 表定义说明了从我的 MYSQL 数据库创建表的语句之一,该数据库是由我公司的前开发人员开发的。

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,

通常我使用:

价格 DOUBLE NULL;

如果我想让该列接受 NULL 值。

那么这3种说法有什么区别呢?

  1. 价格 DOUBLE NULL;

  2. 价格 DOUBLE DEFAULT NULL;

  3. 价格 DOUBLE NULL DEFAULT NULL;

最佳答案

没有区别。 NULL DEFAULT NULL 是隐式默认值。

From the CREATE TABLE documentation:

  • 如果既未指定 NULL 也未指定 NOT NULL,则将该列视为已指定 NULL

From the "Data Type Default Values" chapter:

  • 如果列定义不包含显式 DEFAULT 值,MySQL 将按如下方式确定默认值:如果列可以将 NULL 作为值,则使用显式 DEFAULT NULL 子句定义列。

关于mysql - MYSQL 列创建中的 NULL 与 DEFAULT NULL 与 NULL DEFAULT NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968054/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com