-- 查询单表的索引(方式一)
select * from all_indexes WHERE table_name='表名';
-- 查询单表的约束
SELECT u_cons.* FROM user_cons_columns u_cons_cols,user_constraints u_cons WHERE u_cons_cols.constraint_name = u_cons.constraint_name AND u_cons_cols.table_name = '表明';
-- 单表删除约束
alter table 表名 drop constraint '约束名'
-- 单表删除索引
DROP INDEX 索引名
-- 批量删除表中的所有约束
declare s_sql clob := '' ;
BEGIN
for item in ( SELECT au.CONSTRAINT_NAME FROM user_cons_columns cu,user_constraints au WHERE cu.constraint_name = au.constraint_name AND cu.table_name = 'xx' )
loop
execute immediate 'alter table WORKS_REGISTER drop constraint '|| item.CONSTRAINT_NAME;
s_sql:='alter table WORKS_REGISTER drop constraint '|| item.CONSTRAINT_NAME;
dbms_output.put_line(s_sql);
end loop ;
commit;
END;
-- 批量删除表中的所有索引
declare s_sql clob := '' ;
BEGIN
for item in ( select * from all_indexes WHERE table_name='xx' )
loop
execute immediate 'drop '|| 'INDEX '|| item.INDEX_NAME;
s_sql:='drop '|| 'INDEX '|| item.INDEX_NAME;
dbms_output.put_line(s_sql);
end loop ;
commit;
END;
查询没有添加 主键的表
SELECT
*
FROM
user_tables A
WHERE
NOT EXISTS (
SELECT
*
FROM
user_constraints b
WHERE
A .table_name = b.table_name
AND b.constraint_type = ‘P’
);
-- 添加ID主键
ALTER TABLE 表名 add constraint PK_ID primary key(字段名);
-- 添加唯一索引
CREATE UNIQUE INDEX UI_SERIAL_NUMBER on 表名(字段名);
-- 先添加 SERIAL_NUMBER 普通索引
CREATE INDEX IDX_SERIAL_NUMBER ON 表名(字段名);
-- 再添加 SERIAL_NUMBER 唯一约束
ALTER TABLE 表名 ADD CONSTRAINT UK_SERIAL_NUMBER UNIQUE(字段名) ENABLE NOVALIDATE;
-- 设置字段不为null
alter table 表名 modify 字段名 NOT NULL;