什么是默认值?什么时候需设置默认值?

您所在的位置:网站首页 mysql日期字段设置默认值是什么 什么是默认值?什么时候需设置默认值?

什么是默认值?什么时候需设置默认值?

2024-06-18 17:01| 来源: 网络整理| 查看: 265

概述

我们在建表的时候有时候会加default默认值,有时不加,而default默认值又有''和NULL两种情况,那么这三种不同情况具体表现成什么呢?这里用一个实验来简单测试一下。

1、建表脚本 CREATE TABLE `test` ( `uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `USER_CODE` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编码', `LEAVE_REASON` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '请假理由', PRIMARY KEY (`uid`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 2、查看列定义 SELECT c.TABLE_SCHEMA '数据库', c.TABLE_NAME '表', c.COLUMN_NAME '字段', c.COLUMN_DEFAULT '默认值', c.IS_NULLABLE '是否为空', c.DATA_TYPE '字段类型', c.character_set_name '字符集', c.collation_name '排序规则' FROM information_schema.`COLUMNS` c WHERE TABLE_NAME = 'test'

这里可以发现default设置为NULL和default不设置在information_schema.`COLUMNS`表都表现为NULL,如果我们脚本从这个去判断很容易就和是否为空产生了冲突。

8be961513ec79017529f9e8c9ca65ef6.png 3、从navicat观察

如果直接从navicat去看表定义,可以发现不同的表现。

33cd74348c77cbb26387b406c2f619db.png 95d9771415bf908cc1c8329d88cf3f37.png 372f444665e50d9e4bbd53ca7a596b41.png

这也算是mysql数据库的一个小bug吧~觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

bbc9fa69f76db5ac0a22c3e5b8a48aa2.gif


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3