首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理过时但不可删除的列

问处理过时但不可删除的列
EN

Stack Overflow用户
提问于 2020-04-08 17:57:27
回答 1查看 64关注 0票数 1

我们的数据库中有一些现在已经过时的列。这些列目前没有任何用途,但我们不能只是删除列,因为我们可能需要数据,以找出为什么我们的应用程序在过去的某个时候会这样处理它。

我们看到,在Oracle12c中,我们可以选择将列设置为“不可见”。这似乎适合我们的用例:我们不必删除该列,但该列在日常工作中不会造成麻烦。在查看表时不占用可视空间,并且在查询表中的整行时不包括在内。

由于我们没有使用“隐形”的经验,我们想知道是否有一些我们没有看到的负面因素,或者是否有我们应该考虑的其他“最佳实践”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 00:31:00

将过时的列设置为invisible是弃用它们的好方法。

您需要做的主要事情是在使not null约束不可见之前将其删除。或者,您可能会得到一些意外的错误:

代码语言:javascript
复制
create table t (
  c1 int, 
  c2 int
    invisible
    not null
);

desc t

Name   Null?   Type         
C1               NUMBER(38)   

insert into t values ( 1 );

ORA-01400: cannot insert NULL into ("CHRIS"."T"."C2")

最坏的情况是,您确实发现了一个问题,并使其再次可见。虽然这将change the column order for select *。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61097970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档