Oracle中怎么知道表没有建立主键?

一般的情况下,表的主键是必要的,没有主键的表可以说是不符合设计规范的。
SELECT table_name FROM User_tables t  WHERE NOT EXISTS  
(SELECT table_name FROM User_constraints c WHERE constraint_type = 'P' AND t.table_name=c.table_name)

其它相关数据字典解释
user_tables        表
user_tab_columns   表的列
user_constraints    约束
user_cons_columns  约束与列的关系
user_indexes       索引

醒找一个表中的主键
select distinct a.owner,a.constraint_type,a.table_name,b.column_name from all_constraints a,all_cons_columns b where a.OWNER='TMLHSYS2' and a.TABLE_NAME='TB_BUSINFO' and a.constraint_type='P' and a.CONSTRAINT_NAME=b.CONSTRAINT_NAME;

TB_BUSINFO 替换为自己的表名,TMLHSYS2替换为自己的登录名

你可能感兴趣的:(oracle)