Oracle添加/删除唯一约束

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Zhanjr/article/details/60955632

TABLENAME:添加/删除约束的表名

CONSTRAINTNAME:添加/删除的约束名

COLUMNNAME:添加的约束对应的列名

TABLESPACE:添加的约束对应的表空间


添加唯一约束

declare num number;   
begin   
    --从系统表中查询表是否存在唯一约束
    select count(1) into num from user_constraints t where t.table_name = upper('TABLENAME') and t.constraint_type = 'U' and t.constraint_name = 'CONSTRAINTNAME';       
    --如果不存在,使用快速执行语句添加唯一约束
    if num = 0 then   
       execute immediate  
       'alter table TABLENAME add constraint CONSTRAINTNAME unique (COLUMNNAME) using index tablespace TABLESPACE';  
    end if;  
end;  
/

删除唯一约束
declare num number;  
begin   
    --从系统表中查询表是否存在唯一约束  
    select count(1) into num from user_constraints t where t.table_name = upper('TABLENAME') and t.constraint_type = 'U' and t.constraint_name = 'CONSTRAINTNAME';       
    --如果存在,使用快速执行语句删除唯一约束  
    if num = 1 then   
       execute immediate  
       'alter table TABLENAME drop constraint CONSTRAINTNAME';  
    end if;  
end;  
/


展开阅读全文

没有更多推荐了,返回首页