修改表增加字段默认值default
来源:互联网 发布:hadoop java 编辑:程序博客网 时间:2024/04/29 00:23
对个生产库的表增加1个字段.字段类型是INT型, 表数据有2千万条, alter table table_name add xxoo number(4) default 0 ;
因此 不仅要修改字典,还要刷新全部数据.
1) 在ALTER sql中有带缺省值,ORACLE会直接刷新全部的记录。
2) 在ALTER sql中没有带缺省值,ORACLE只会影响到后来的记录。
alter table table_name add xxoo number(4) default null;
Table altered
Executed in 0.062 seconds
带有default null 就可以了
alter table table_name add xxoo number(4) default 0;
Table altered
Executed in 1.625 seconds
原来的话 要更新所有的行,会导致UNDO段占用
使用语句Alter table a add test number(10) default 0;更新一个大表中字段时,表有四个分区,数据达到几十亿行,增加一个字段竟然要几个小时的时间,修改语句加上Nologging ,怎么没有作用呢?去找是不是哪有锁了呢,使用语句 select * from dba_locks where lock_id1=33784;发现Session_id为14的一直在执行,那么他在执行什么呢!查询一下吧。
使用语句:
select a.sid,a.username,c.SQL_TEXT from v$session a, dba_locks b,v$sqlarea c
where b.lock_id1=33784 and a.SID=b.session_id
and a.SQL_ADDRESS=c.ADDRESS;
哦,原来他在Update Test 字段值为0.至此总结到,原来Alter之后做的竟然是Update,也明白了为什么Undo表空间会爆涨。去掉Default 0,呵呵,很快就OK了。
建议没有必要时慎用Default- 修改表增加字段默认值default
- SQL增加字段、修改字段、修改类型、修改默认值
- SQL语句增加字段、修改字段、修改类型、修改默认值
- 修改表添加字段(默认值)
- 给字段增加 默认值
- MySQL语句增加字段,修改字段名,修改类型,修改默认值
- MySQL修改字段默认值
- MYSQL修改字段默认值
- SQL修改字段默认值
- SQL修改字段默认值
- SQL修改字段默认值
- SQL修改字段默认值
- MySQL修改字段默认值
- MySQL修改字段默认值
- mysql 表增加一个字段并设置默认值
- SQL语句修改字段默认值
- 批量修改sqlserver 字段默认值
- MYSQL 语句修改字段默认值
- 2013校招 我与MicroStrategy(微策略) 从宣讲会到终面
- Subversion和TortoiseSVN安装与配置
- 二分图之匈牙利算法
- 雪菊、昆仑雪菊的功效与作用
- Dynamic Adaptive Streaming over HTTP Dataset
- 修改表增加字段默认值default
- 行业门户网站如何捕获访客“芳心”
- 妈咪,我找到了! -- 15个实用的Linux find命令示例
- C# Winform控件截图
- Android listView scroll 恢复滚动位置
- Hadoop DistributedCache
- Java对象的生命周期
- QMetaObject::connectSlotsByName: No matching signal for……
- jQuery 二级联动