暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

2016-11-03-PostgreSQL之分区表创建以及关系梳理

原创 xiao_mini 2024-01-19
114

Table of Contents

分区的操作

实验条件:

存在表tr_g001

a.创建分区

Create table tr_g001_1 ( Check(taskid>’1and taskid <’10’) ) inherits (tr_g001);

b.创建规则

CREATE OR REPLACE RULE TR_G0001_1_rule AS ON INSERT TO TR_G0001 WHERE (TASKID>'1' AND TASKID<'100') DO INSTEAD INSERT INTO TR_G0001_1 VALUES(NEW.*);

c.删除规则

方案一:

DROP RULE TR_G0001_1_rule ON TR_G0001

方案二:

DROP RULE IF EXISTS TR_G0001_1_rule ON TR_G0001

d.删除子表

DROP TABLE IF EXISTS TR_G0001_1

查父表子表的继承各种关系

查父表

select distinct pi.inhparent, pc.relname parent_name from pg_inherits pi left join pg_class pc on pi.inhparent=pc.oid

查子表

select distinct pi.inhrelid, pc.relname child_name from pg_inherits pi left join pg_class pc on pi.inhrelid=pc.oid 

查父表子表的继承关系

select pi.inhrelid child_oid, pc.relname child_name, pi.inhparent parent_oid, pc2.relname parent_name from pg_inherits pi left join pg_class pc on pi.inhrelid=pc.oid left join pg_class pc2 on pi.inhparent=pc2.oid

根据父表找出子表的名称

select child_name from ( select pi.inhrelid child_oid, pc.relname child_name, pi.inhparent parent_oid, pc2.relname parent_name from pg_inherits pi left join pg_class pc on pi.inhrelid=pc.oid left join pg_class pc2 on pi.inhparent=pc2.oid ) as t where parent_name ='父表名'

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论