附上杨大师的文章链接快速增加表新加列的默认值的方法
下为自己测试示例:
2012年3月30日 星期五 11时53分
SQL> conn scott/system
已连接。
SQL> create table t_add_newcol(a int,b int);
表已创建。
SQL> insert into t_add_newcol values(1,1);
已创建 1 行。
SQL> insert into t_add_newcol values(2,2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t_add_newcol;
A B
---------- ----------
1 1
2 2
SQL> alter table t_add_newcol add new_c int;
表已更改。
SQL> select * from t_add_newcol;
A B NEW_C
---------- ---------- ----------
1 1
2 2
SQL> alter table t_add_newcol modify new_c int default 8;
表已更改。
//表明执行添加默认值的新列后,原有记录不会发生变化,新添列还是空null
SQL> select * from t_add_newcol;
A B NEW_C
---------- ---------- ----------
1 1
2 2
SQL> insert into t_add_newcol values(3,3,default)
2 ;
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t_add_newcol;
A B NEW_C
---------- ---------- ----------
1 1
2 2
3 3 8
SQL> insert into t_add_newcol(a,b) values(4,4);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t_add_newcol;
A B NEW_C
---------- ---------- ----------
1 1
2 2
3 3 8
4 4 8
//通过视图实现向表中添加默认值新列后,让新添列显示(添加列前后)默认值
SQL> create view view_add_newcol
2 (a,b,new_c)
3 as
4 select a,b,nvl(new_c,8) from t_add_newcol;
视图已创建。
SQL> select * from view_add_newcol;
A B NEW_C
---------- ---------- ----------
1 1 8
2 2 8
3 3 8
4 4 8
小结:
1,视图可以很好的使用,用得好,实利于工作
2,在生产系统中,重大操作要分批次进行,比如上述的ddl分多批次进行,这样
对业务影响减小
3,基本概念掌握相当重要,这样才会有更精细的方案.防止操作失误出现