如何在oracle DB中再次重用未使用的列

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点检查减少了下拉柱操作期间积累,以避免还原空间的电位耗尽撤消日志的量.

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250;
Run Code Online (Sandbox Code Playgroud)

而另一个(强调我的):

标记列未使用

如果您担心从大表中的所有行中删除列数据所需的时间长度,则可以使用ALTER TABLE ... SET UNUSED语句.此语句将一个或多个列标记为未使用,但实际上不会删除目标列数据或还原这些列占用的磁盘空间.但是,标记为未使用的列不会显示在查询或数据字典视图中,并且会删除其名称,以便新列可以重用该名称.还会删除列上定义的所有约束,索引和统计信息.