暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 添加具有非空约束的列

askTom 2016-03-17
228

问题描述

如何将一列添加到雇员表中,而该列不应为空约束...

我已经试过了,我的答案是这样的...

变更表EMP
修改VARCHAR2(10) NOT NULL;...




改变表emp
add col_extra number(7) check(col_extra is not null);(It's not w或ked)..



ALTER Table < YourTable>
ADD <新列> <新列类型> NOT NULL默认值<默认值>....


给我一个正确的答案,以emp表的例子。




专家解答

向表中添加列时,其值将为null。因此,要添加非空约束,首先需要提供一个值!

最简单的方法是使用默认值:

alter table scott.emp add new_col int default 1 not null;


但这意味着你需要选择一个合适的默认值。因此,您需要与您的用户/业务分析人员交流,以找到一个解决方案。在许多情况下,现有行将需要不同的值。因此,在添加列之后,您需要更新该列。您可以:

-使用默认值添加而非空,然后更新

或者

-添加列,更新列,然后设置为非空

对于大型表,最好将更新作为选择创建表来执行:

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:6407993912330

这里没有一个“正确”的答案。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论