Sql 如何查找现有表的约束?

Sql 如何查找现有表的约束?,sql,oracle,constraints,referential-integrity,Sql,Oracle,Constraints,Referential Integrity,如何查找完整性约束(如主键) 对于现有表?我正在使用Oracle 10g。您需要查询数据字典,特别是“用户列”视图,以查看表列和相应的约束: SELECT * FROM user_cons_columns WHERE table_name = '<your table name in caps>'; 从用户列中选择*,其中表名=“”; 要查找表上的约束,请执行以下操作: select constraint_name, constraint_type from user_const

如何查找完整性约束(如主键)
对于现有表?我正在使用Oracle 10g。

您需要查询数据字典,特别是“用户列”视图,以查看表列和相应的约束:

SELECT *  FROM user_cons_columns WHERE table_name = '<your table name in caps>';
从用户列中选择*,其中表名=“”;

要查找表上的约束,请执行以下操作:

select constraint_name, constraint_type
from user_constraints
where table_name = 'YOUR_TABLE'
如果需要在其他模式中查找表上的约束,则会有匹配的字典视图,即ALL_u和DBA_u

这四种约束类型是

  • P主键
  • U唯一
  • R外键(参考)
  • C检查
检查约束包括我们不会立即认为是约束的内容,例如NOTNULL

所以,要在表中查找主键

select constraint_name, constraint_type
from user_constraints
where table_name = 'YOUR_TABLE'
and   c.constraint_type = 'P'
要查找外键中引用的表,请执行以下操作:

select c.constraint_name as foreign_key
       , c.r_constraint_name as referenced_constraint
       , p.table_name
from user_constraints c
     join user_constraints p
      on p.constraint_name  = c.r_constraint_name 
where c.table_name = 'YOUR_TABLE'
and   c.constraint_type = 'R'
/

如果您试图查找有关数据模型的信息,请使用为该作业构建的工具