首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我不知道约束的名称时,如何在Oracle中删除"not null“约束?

当我不知道约束的名称时,如何在Oracle中删除"not null“约束?
EN

Stack Overflow用户
提问于 2010-03-30 03:17:52
回答 5查看 163.9K关注 0票数 90

我有一个数据库,它在一个字段上有一个非空约束,我想删除这个约束。复杂的因素是该约束具有系统定义的名称,并且该约束的名称在生产服务器、集成服务器和各种开发人员数据库之间是不同的。我们当前的流程是签入更改脚本,自动任务通过sqlplus对目标数据库执行适当的查询,所以我更喜欢直接发送到sqlplus的解决方案。

在我自己的数据库上,要删除它的SQL是:

alter table MYTABLE drop constraint SYS_C0044566

当我查询all_constraints视图时,我可以看到约束:

select * from all_constraints where table_name = 'MYTABLE'

但是我不确定如何使用SEARCH_CONDITIONLONG数据类型,或者如何最好地动态删除查找到的约束,即使我知道它的名称。

那么,我如何创建一个更改脚本来根据约束是什么而不是它的名称来删除该约束呢?

编辑:@Allan的答案很好,但我担心(因为我缺乏Oracle专业知识)可能并不是所有的约束都具有系统生成的名称,并且有一种方法可以在不知道约束名称的情况下删除约束。在逻辑删除约束时,总是有一种方法可以避免知道系统命名约束的名称,这是真的吗?

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

https://stackoverflow.com/questions/2540615

复制
相关文章

相似问题

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