如何从Oracle数据库中删除基于列的约束?

金刚

有没有一种方法可以根据列名删除约束(唯一索引)?

我想做的是删除列名是name和name_type的约束。

ALTER TABLE MY_TABLE DROP CONSTRAINT NAME_OF_CONSTRAINT;

我没有名字,所以我想这样。

ALTER TABLE MY_TABLE DROP CONSTRAINT **WHERE COLUMN = col1 AND column = col2**

在约束上执行类似操作的任何语法。

亚历克斯·普尔

我认为仅凭一条语句就不可能做到这一点,但是事实证明确实如此,如文档中的示例所示

ALTER TABLE MY_TABLE DROP UNIQUE(col1, col2);

一个完整的示例:ALTER TABLE MY_TABLE ADD UNIQUE(col1,col2);

Table my_table altered.

SELECT CONSTRAINT_NAME, INDEX_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'MY_TABLE';

CONSTRAINT_NAME                INDEX_NAME                    
------------------------------ ------------------------------
SYS_C0092455                   SYS_C0092455                   

ALTER TABLE MY_TABLE DROP UNIQUE(col1, col2);

Table my_table altered.

SELECT CONSTRAINT_NAME, INDEX_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'MY_TABLE';

no rows selected

另一种方法是查询USER_CONSTRAINTSUSER_CONS_COLUMNS视图以找到匹配的约束名称(大概是系统生成的,或者您已经知道了),然后使用该名称。如果您需要以脚本形式执行此操作,则可以在PL / SQL块中进行查询,并将找到的约束名称插入动态ALTER TABLE语句中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Oracle数据库列中删除行距

如何从Rails的数据库列中删除唯一约束?

如何从数据库(ASP.NET MVC5)中删除具有迁移约束的列

如何从数据库中的 XML 列中删除节点

如何从SQL Server数据库的表中删除或更改多个数据库的默认约束?

Rails 5:如何从数据库中删除列?

如何基于R中的数据帧从ODBC数据库中删除记录

如何从Java读取Oracle数据库中的CLOB列

基于 Oracle 数据库中的两列递增列值

Oracle 数据库中的虚拟列

如何使用php pdo从mysql中具有外键约束的数据库中删除数据

如何确定基于Saga的类,以便将其从SQL数据库(EF Core)中删除?

如何删除基于MySQL数据库值填充的html表中的行?

如何基于搜索到的值从jtable和sql数据库中删除搜索到的行

在Oracle SQL数据库中删除后如何删除“浪费的行”

基于其他数据库mysql从表中删除

如何从数据库中删除项目

如何从数据库中删除整行

如何从数据库中删除角色

如何从Firebase数据库中删除

如何从数据库中删除项目?

如何确定Java中违反数据库约束的条件?

Oracle如何根据多个数据库列和条件删除重复项

如何在Oracle数据库中同时从2个表中删除?

如何基于数组从mysql数据库中获取数据

如何基于数据库中的列排序日期,最新日期在最前面

如何基于Rails on Rails 4应用程序中的答案更新数据库列

如何基于日期作为数据库中列的确切年份筛选用户?

如何基于特定值查询数据库中的列MVC ASP.NET Core