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;
/