x.5*_*509 4 oracle ddl alter-table
假设我有一个具有以下定义的表
create table dummy (col1 number(9) not null)
Run Code Online (Sandbox Code Playgroud)
这个dummy.col1中的所有值都是7位长.现在我想使用alter命令将此列的长度从9 - 7减少.Oracle给出了错误,即要修改的列必须为空以降低精度或比例.说得通.
我想问一下是否有任何减少列大小的工作?
列大小与数据的物理存储方式无关(它们是可变长度)
例如,如果存储在数字(38)中,则数字(2)中的"23"将占用完全相同的空间
它纯粹是对可以存储在列中的最大数量的约束,因此您只需在列上添加约束:
ALTER TABLE dummy ADD
CONSTRAINT c1
CHECK (col1 < 9999999)
ENABLE
VALIDATE;
Run Code Online (Sandbox Code Playgroud)
如果你想让它更快一点改变VALIDATE,NOVALIDATE显然这不会检查现有数据的有效性.
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |