oracle中查询表的约束条件,Oracle PL/SQL(2) - 查询某表的约束条件

Oracle将用户创建的表、约束等信息都放在数据字典表中,允许开发人员查询数据字典表或视图来获取数据库对象的信息。

如下数据字典视图提供了约束的详细信息:

user_constraints:如果知道约束名,想知道约束类型,可以查询user_constraints,这个视图描述了约束的定义,但是它不描述约束定义在哪些字段名称上。

user_cons_columns:视图中显示约束的字段名称。如果主键是一个联合主键,这个视图中将有这个约束的两条记录,联合主键的每一个字段对应一条记录。每一条记录通过position(在联合主键中的位置)来区别。

例如:使用user_constraints查询t_claim表中的所有约束

SELECT constraint_name, search_condition, status

FROM user_constraints

WHERE table_name = UPPER ('t_claim');

查询结果:

f27ba4687da9

image.png

例如:使用user_cons_columns查询t_claim表约束应用的列信息

SELECT constraint_name, column_name

FROM user_cons_columns

WHERE table_name = UPPER ('t_claim');

查询结果:

f27ba4687da9

image.png

查询表的主键

select cu.* from user_cons_columns cu, user_constraints au

where cu.constraint_name = au.constraint_name

and au.constraint_type = 'P' AND cu.table_name = UPPER ('t_claim')

查询结果:

f27ba4687da9

image.png

查找表的外键

select * from user_constraints c where c.constraint_type = 'R' and c.table_name = UPPER ('t_claim')

查询结果:

f27ba4687da9

image.png

查询外键约束的列名:

select * from user_cons_columns cl where cl.constraint_name = 'PK_ACCIDENT'

查询结果:

f27ba4687da9

image.png

查询表的所有列及其属性

select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where c.table_name = UPPER ('t_claim')

查询结果:

f27ba4687da9

image.png

例如:使用all_constraints和all_cons_columns来获取t_claim表 约束的详细信息

SELECT a.table_name,

a.constraint_name,

a.search_condition,

b.column_name,

a.constraint_type

FROM all_constraints a, all_cons_columns b

WHERE a.table_name = UPPER ('t_claim')

AND a.table_name = b.table_name

AND a.owner = b.owner

AND a.constraint_name = b.constraint_name;

查询结果:

f27ba4687da9

image.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值