Mysql修改字段为默认空

数据库字段定义尽量不要为默认空,但是为了满足产品需求和减少开发量,所以直接将字段改为默认空。但是一样的修改SQL修改同一张表的两个Not Null字段其中一个1秒内完成;另外一个执行了1分钟都没有执行完。鉴于执行时间太慢和最近升级了数据库版本为8.0,所以中止执行,创建测试表验证SQL是否有问题。

DML

ALTER TABLE test_table_define MODIFY COLUMN type_name tinyint(1) DEFAULT NULL COMMENT 'Not Null Alter Null Test';

test_table_define:表名;type_name:字段名。

表创建结构

CREATE TABLE test_table_define (id int(11) NOT NULL AUTO_INCREMENT,type_name tinyint(4) DEFAULT 1 COMMENT 'Not Null Alter Null Test',remark_ varchar(255) DEFAULT NULL,PRIMARY KEY (id)
)
ENGINE = INNODB,
CHARACTER SET utf8,
COLLATE utf8_general_ci,
COMMENT = '测试表定义问题';

新增两条数据

INSERT INTO test_table_define (remark_) VALUES
('测试字段默认非空,用SQL改为默认空!'),
('测试字段默认非空,用SQL改为默认空!');

执行

  1. Mysql版本5.7.18执行:正常,SQL.sql: DML succeeded [0.015s]
  2. Mysql版本8.0.23执行:正常,SQL.sql: DML succeeded [0.459s]

修改后表结构

CREATE TABLE test_table_define (id int NOT NULL AUTO_INCREMENT,type_name tinyint DEFAULT NULL COMMENT 'Not Null Alter Null Test',remark_ varchar(255) DEFAULT NULL,PRIMARY KEY (id)
)
ENGINE = INNODB,
CHARACTER SET utf8,
COLLATE utf8_general_ci,
COMMENT = '测试表定义问题';

结论

所以,DML脚本是正确,版本升级之后没有其他帖子说的增加了限制不允许Not Null改为Null。
找了一张表数据333105修改两个字段默认空,执行相同的DML脚本结果分别是:SQL.sql: DML succeeded [0.459s],SQL.sql: DML succeeded [51.836s]。所以是数据量影响了DML执行时间。

后续

MODIFY COLUMN底层做了什么事情,那么慢?
同一张表数据量都是333105,都是MODIFY,为什么一个字段只需0.4S,另一个却需要51.836S?

Mysql修改字段为默认空相关推荐

  1. MySQL修改字段的默认值和空值

    MySQL修改字段的默认值和空值 一.修改字段默认值 修改: ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 默认值 删除: ALTER TABLE 表名 AL ...

  2. mysql修改字段null为空字符串

    修改字段null为空字符串 UPDATE zxt_user_exam SET type = ( CASE WHEN IFNULL( type, '' ) = '' THEN '' ELSE type ...

  3. mysql修改字段是否非空

    SQL语句: ALTER TABLE 表名 MODIFY column 字段名 字段类型 是否非空; 例如: ALTER TABLE t_user MODIFY column user_id VARC ...

  4. mysql修改字段的默认值

    若本身存在默认值,则先删除 alter table表名alter column字段名drop default; 然后设置默认值(若本身不存在则可以直接设定) alter table表名 alter c ...

  5. mysql如何修改字段允许为空

    mysql如何修改字段允许为空 修改字段允许为空 alter table 表名 modify 字段名 字段类型 null; 例: alter table employees MODIFY first_ ...

  6. mysql修改字段类型语句

    mysql中字段为TEXT类型的内容怎么修改? 可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符). MySQLsupp ...

  7. mysql修改字段为现在时间_mysql如何修改字段自动生成时间

    mysql修改字段自动生成时间的方法:1.添加CreateTime设置默认时间:2.修改CreateTime设置默认时间:3.添加UpdateTime设置默认时间. 本教程操作环境:windows7系 ...

  8. mysql 修改字段值语句_mysql修改字段语句

    --------------------------------------------------------- Ta 只分享的内容开始 ------------------------------ ...

  9. Mysql修改字段类型

    修改字段类型.字段名.字段注释.类型长度.字段默认值 mysql修改字段类型:      --能修改字段类型.类型长度.默认值.注释 --对某字段进行修改 ALTER  TABLE 表名 MODIFY ...

最新文章

  1. AcornCharts
  2. oracle 12c多租户下的日常操作变化
  3. 【原创】Aspose.Words组件介绍及使用—基本介绍与DOM概述
  4. 多线程:多线程优缺点、应用场景
  5. 使用高级视频质量工具 AVQT 评估视频 | WWDC 演讲实录
  6. 有效事件: 可取代数十种设计模式
  7. 第十五期:详解Java集合框架,让你全面掌握!
  8. python实例解析_python中super的用法实例解析
  9. FMPlayer组件说明
  10. java 图片转成base64编码_java语言中如何将一个图片转换为base64编码的数据呢?
  11. 致未来要跟我领小红本的男人
  12. ZooKeeper 会话的秘密 快偷偷过来瞧一瞧!!!
  13. 下载蓝盒插件_chrome迅雷下载插件-迅雷下载支持插件下载 v3.1官方版--pc6下载站...
  14. 姿态估计1-07:FSA-Net(头部姿态估算)-源码无死角讲解(2)-网络框架整体结构分析
  15. python爬虫简单入门级,小白讲说
  16. 西安邮电大学第五届ACM-ICPC校赛(同步赛)
  17. 计算机中的cad是什么意思是,cad是什么意思 cad是什么软件
  18. FPGA编程,verilog实现简易电梯控制系统,某大学数电实验课设
  19. 【面试篇】牛客网面试总结
  20. 如果想入手软路由我推荐友善官方出品的NanoPi-R2S和NanoPi-R5S

热门文章

  1. 用linux如何用vi编写c程序,linux中VI编写C程序。。。
  2. TLB 结构和工作方式
  3. 1.4 java学习的环境准备
  4. DataTable的AcceptChanges()方法和DataRow的RowState属性
  5. 超声诊断中的弹性成像技术介绍
  6. flutter调用js代码
  7. 有道云笔记修改背景色和背景图片
  8. 轻松掌握WCF之专家聊天实录(张逸、赵劼)
  9. 电脑清除dns缓存命令
  10. 时区转换,时间格式转换