[Oracle]如何获取指定表的约束类型(user_constraints 和user_cons_columns的联系使用)

393 阅读1分钟

user_constraints

user_constraints表描述了当前用户的所拥有的表的所有约束定义。他的 CONSTRAINT_TYPE 字段代表约束类型,P代表主键约束,C代表非空约束,U代表唯一约束。 他还有另外两个类似的表:

  • all_constraint:当前用户可接触的所有约束。
  • dba_constraint:数据库的所有约束

user_cons_columns

user_cons_columns表描述了当前用户拥有的约束字段。这些约束有主键约束,外键约束,索引约束。

获取指定表的约束类型

select *
  from user_constraints con, user_cons_columns col
 where con.constraint_name = col.constraint_name
   and con.constraint_type = 'P'
   and col.table_name = '表名';

上面例子是获取指定表的主键约束。可以换成C(非空约束),U(唯一约束)。 两个表的具体字段含义可以自行查看。