不使用默认值new column更新现有记录

时间:2015-03-17 09:42:35

标签: oracle

我有一张包含一些记录的表格。

我想在此表中添加TIMESTAMP类型的列(LAST_MODIFIED)。我想将此新列的DEFAULT值设置为SYSDATE

但我想确保在添加此列时,现有记录不会将此列值作为SYSDATE。怎么做到这一点?

1 个答案:

答案 0 :(得分:3)

您应该将其作为两个单独的操作:添加列并设置默认值。

SQL> create table some_data (id integer);

Table created

SQL> insert into some_data select rownum from dual connect by level <= 5;

5 rows inserted

SQL> alter table some_data add date_modified date;

Table altered

SQL> alter table some_data modify date_modified default sysdate;

Table altered

SQL> insert into some_data (id) values (6);

1 row inserted

SQL> select * from some_data;

                                     ID DATE_MODIFIED
--------------------------------------- -------------
                                      1 
                                      2 
                                      3 
                                      4 
                                      5 
                                      6 17.03.2015

6 rows selected