【发布时间】:2018-10-26 20:41:34
【问题描述】:
当该表包含一百万条记录并且它处于活动状态时,在生产 oracle 数据库中添加具有默认值的非空列的最佳方法是什么。如果我们创建列、添加默认值并在单个语句中使其不为空,它会创建任何锁吗?
【问题讨论】:
-
如果表被压缩(或者它被分区并且有任何压缩分区或子分区),那么你不能一次性添加
not null列,否则你会得到ORA- 39726:不支持对压缩表的添加/删除列操作。如果是这种情况,您必须将其分解为单独的步骤(添加不带默认值的可为空列、更新表、修改列)。