PostgreSQ 查询表外键依赖关系

(1)查询当前表被哪些子表所依赖

SELECT x.table_name, x.column_name FROM information_schema.key_column_usage x  #key_column_usage是系统列信息表
INNER JOIN 
  (SELECT t.relname, a.conname  
  FROM pg_constraint a                                                 #pg_constraint是系统所有约束表
  INNER JOIN pg_class ft  ON ft.oid = a.confrelid  
  INNER JOIN pg_class t  ON t.oid = a.conrelid WHERE a.contype = 'f' 
  AND a.confrelid = 
    (select e.oid   from pg_class e  where e.relname = 'auth_user')     #'auth_user'是所需要的查询表
 ) tp 
ON (x.table_name = tp.relname AND x.constraint_name = tp.conname);

查询结果

(2)查询当前表依赖哪些表

SELECT tc.constraint_name,tc.table_name, kcu.column_name,
		ccu.table_name AS foreign_table_name,
		ccu.column_name AS foreign_column_name, 
		tc.is_deferrable,tc.initially_deferred 
  FROM information_schema.table_constraints AS tc 
		JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name 
		JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name 
  WHERE constraint_type = 'FOREIGN KEY' AND tc.table_name='auth_user_user_permissions';        # 是所需要查询的表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值