Moh*_*han 5 oracle10g sql-drop
我有一个包含4列,ID,NAME,AGE和COUNTRY的表.一段时间以来,我已将我的AGE列设置为未使用以下命令
alter table Personal set unused column AGE;
Run Code Online (Sandbox Code Playgroud)
现在我想再次使用相同的列AGE,如何在Oracle(10g)中执行此操作.
并删除一列并将列设置为Unused,这是最佳选择.请指导我.
jac*_*ate 13
您不能重复使用未使用的列.列上唯一可能的操作是将其从表中删除.
但是,即使不删除未使用的列,也可以添加具有相同名称的新列.
从文档中
ALTER TABLE ... DROP UNUSED COLUMNS语句是未使用列上允许的唯一操作.它物理地从表中删除未使用的列并回收磁盘空间.
在随后的ALTER TABLE语句中,指定了可选子句CHECKPOINT.这个子句导致处理行的指定的次数之后施加一个检查点,在这种情况下250点检查减少了下拉柱操作期间积累,以避免还原空间的电位耗尽撤消日志的量.
Run Code Online (Sandbox Code Playgroud)ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250;
而另一个(强调我的):
标记列未使用
如果您担心从大表中的所有行中删除列数据所需的时间长度,则可以使用ALTER TABLE ... SET UNUSED语句.此语句将一个或多个列标记为未使用,但实际上不会删除目标列数据或还原这些列占用的磁盘空间.但是,标记为未使用的列不会显示在查询或数据字典视图中,并且会删除其名称,以便新列可以重用该名称.还会删除列上定义的所有约束,索引和统计信息.
| 归档时间: |
|
| 查看次数: |
17624 次 |
| 最近记录: |