oracle创建列默认值,表列添加默认值的方法

  • Post author:
  • Post category:其他


在修改表结构时,有时候会涉及到添加默认值。

下面是在11.2.0.3版本数据库中进行测试的结果:

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0

Connected as borpt

SQL> set timing on

SQL> select count(1) from user_mark_resultt;

COUNT(1)

———-

1451535

Executed in 0.219 seconds

当前数据量为145万

操作方法1:先增加表列,再修改默认值

SQL> alter table user_mark_resultadd name2 varchar2(10) ;

Table altered

Executed in 0.047 seconds

SQL> alter table user_mark_result modify name2 default ‘a’;

Table altered

Executed in 0.063 seconds

操作方法2:直接增加表列并赋予默认值

SQL> alter table user_mark_result add name3 varchar2(10) default ‘a’ ;

Table altered

Executed in 45.86 seconds

结果如下:

SQL> select t.dealerid,t.name2,t.name3 from user_mark_result t where rownum<5;

DEALERID                       NAME2      NAME3

—————————— ———- ———-

DL0120100619                              a

DL0120100621                              a

DL0120100628                              a

DL0120100904                              a

Executed in 0.062 seconds

通过以上比较可知:

1.为表增加字段后,再修改默认值,已存在的数据不受影响

2.增加字段语句中同时为字段添加默认值,需要较长时间的锁表&#x