oracle添加默认值列后续插入的才应用默认值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle添加默认值列后续插入的才应用默认值相关的知识,希望对你有一定的参考价值。

ORACLE 11203,

对表新加一个时间字段,同时默认值为SYSDATE,我的本意是,原来的不管,后续插入记录时,使用SYSDATE记录插入时间。结果新增字段时,ORACLE却把原先表里存在的30万行记录也加上
这个时间点. 

ORACLE 什么思路,莫名其妙,,,

Oracle还没那么智能,它无法判断出你的本意---“我的本意是,原来的不管,后续插入记录时,使用SYSDATE记录插入时间。”
因为有些人的本意可能会是:不管是原来的已有的数据还是后续插入记录时,都是使用SYSDATE记录插入时间。

按照LZ的本意,大可以先添加新列,在添加默认值。
SQL> alter table xxx add dtime date;
SQL> alter table xxx modify dtime default sysdate;

Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the current input statement.

mysql>
mysql> select * from dual;
+--------------------------------------------------------------------------------+
| 坐而论道,必先有术。不学无术而论道者,穷则独欺其身,达则兼害天下。 |
+--------------------------------------------------------------------------------+
1 row in set (0.02 sec)

以上是关于oracle添加默认值列后续插入的才应用默认值的主要内容,如果未能解决你的问题,请参考以下文章

hibernate在Oracle中插入数据,默认字段被设置为null的问题解决

oracle的主键要设置默认值为自动递增,怎么处理?

Oracle中插入默认时间

SQLSERVER 如何添加0或1的约束,默认是0

为oracle数据库列创建表时如何使用默认主键作为序列值

mysql怎么获取数据表字段enum类型的默认值