为表的列添加默认值,并不是所以情况都会用到默认值,只有在插入数据时,没有明确指定这个列,才会用到默认值,以下是测试用例,数据库版本11.2.0.4,操作系统版本为OEL 6.5。
首先创建测试表。
SQL> create table t_test(id number,name char(10));
Table created.
插入一条数据,name列为空。
SQL> insert into t_test values(1,'');
1 row created.
SQL> commit;
Commit complete.
修改name列的默认值为’X’。
SQL> alter table t_test modify name default 'X';
Table altered.
为已经存在空值的列添加默认值,不会修改已存在的数据,因此查询发现name列仍然为空。
SQL> select * from t_test;
ID NAME
---------- ----------
1
再次插入一条记录,name列使用’’的方式表示name为空。
SQL> insert into t_test values(2,'');
1 row created.
SQL> commit;
Commit complete.
查询会发现,并没有用到默认值,name列仍然为空。
SQL> select * from t_test;