美文网首页oracle
注意:表结构变更的坑--大表添加有default值字段

注意:表结构变更的坑--大表添加有default值字段

作者: DBA | 来源:发表于2017-02-07 13:58 被阅读0次

生产环境中,经常会因为系统迭代升级而修改表结构。
如果遇到了对大表做添加有default值字段的操作,一定要格外注意,因为这个操作相当于在添加字段之后做update default value的动作,导致添加字段很慢,而且会将表加上排它锁,阻碍其他dml语句执行。
变更SQL示例:

alter table scott.test1 add new_col varchar(8) default 'testcol';

绕坑方法:如果新加字段带有not null约束就会很快执行完毕。
这是11g对 新增“not null & default”字段 进行了优化,默认值以及对应的表信息、列信息一起存储在一个新增数据字典表ecol$中,所以建议开发人员,如果业务允许,最好将后添加的带有默认值的字段设置为not null。
通常的业务逻辑下,有默认值的字段都不会被重置为null,即增加not null约束不会影响原业务逻辑。

测试:


Paste_Image.png

相关文章

  • 注意:表结构变更的坑--大表添加有default值字段

    生产环境中,经常会因为系统迭代升级而修改表结构。如果遇到了对大表做添加有default值字段的操作,一定要格外注意...

  • Oracle GoldenGate (OGG)新增表同步数据的流

    变更场景 已同步的表结构变更,包括添加字段,删除字段,修改字段类型和字段长度 新增同步表 变更流程 一、已同步表结...

  • 生产事故-数据库在线加字段导致整个平台故障

    事件背景 晚上11点通过数据库sql审核平台(yearning)进行表结构变更,变更类型为在线添加字段。待添加表大...

  • 二、SQL—数据的增删改

    首先创建数据表: 插入数据: insert into 表名(字段名)values(字段值)如: 注意:字段和值要一...

  • mysql 迭代查询所有上级

    表结构为 坑点,表中的主键除id,pid字段,其余字段不能为主键(不明所以,这是目前测出来的坑)即目前表中,只要设...

  • 数据库、表——增删改

    数据库 数据表 1、创建表——create 字段名称和字段类型必须要包含; default可设置默认值; 主键表示...

  • SQL - Alter用法总结

    一、修改表结构和字段值 1、增加列 Alter table 表名 add column 字段名 字段定义 例子:A...

  • HMSET

    HMSET 使用结构体,为hash表添加字段。并利用结构体,将hash表的字段的值取出并赋值到结构体 使用普通命令...

  • vertica数据库SQL编写规范

    SELECT 查询优化 【强制】明确查询的字段,禁止使用select *说明:防止表结构变更导致程序异常;明确字段...

  • Mysql 数据库day2(2019.4.24)

    一、回顾 二、修改表结构 表结构包含:字段名,字段类型,字段属性 1.查看当前表结构 2.增加字段 添加字段的时候...

网友评论

    本文标题:注意:表结构变更的坑--大表添加有default值字段

    本文链接:https://www.haomeiwen.com/subject/mhapittx.html