postgresql创建分区
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了postgresql创建分区,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2179字,纯文字阅读大概需要4分钟。
内容图文
![postgresql创建分区](/upload/InfoBanner/zyjiaocheng/566/74e100c950184792b525b63b0faf916d.jpg)
postgresql创建分区 1.创建主表 create table measurement( city_id int not NULL, logdate date not NULL, peaktemp int, unitsales int ); 2创建分区表 create table measurement_201303( CHECK(logdate=DATE2013-03-01 and logdate DATE2013-04-01) ) INH
postgresql创建分区
1.创建主表
create table measurement(
city_id int not NULL,
logdate date not NULL,
peaktemp int,
unitsales int
);
2创建分区表
create table measurement_201303(
CHECK(logdate>=DATE'2013-03-01' and logdate< DATE'2013-04-01')
) INHERITS(measurement);
create table measurement_201304(
CHECK(logdate>=DATE'2013-04-01' and logdate< DATE'2013-05-01')
) INHERITS(measurement);
create table measurement_201305(
CHECK(logdate>=DATE'2013-05-01' and logdate< DATE'2013-06-01')
) INHERITS(measurement);
3,可以在相应的分区表上建立索引
create index measurement_201303_logdate on measurement_201303(logdate);
create index measurement_201304_logdate on measurement_201304(logdate);
create index measurement_201305_logdate on measurement_201305(logdate);
4.创建触发的存储过程
create or REPLACE FUNCTION measurement_insert_trigger()
returns trigger as $$
begin
if(NEW.logdate >=date'2013-03-01' and NEW.logdate <DATE'2013-04-01') THEN
insert into measurement_201303 VALUES(NEW.*);
ELSEIF(NEW.logdate >=date'2013-04-01' and NEW.logdate <DATE'2013-05-01') THEN
insert into measurement_201304 VALUES(NEW.*);
ELSEIF(NEW.logdate >=date'2013-05-01' and NEW.logdate <DATE'2013-06-01') THEN
insert into measurement_201305 VALUES(NEW.*);
ELSE
raise EXCEPTION 'Date out of range.Fix the measurment_insert_trigger() function!';
end if;
RETURN null;
end;
$$
LANGUAGE plpgsql;
5.创建触发器
CREATE TRIGGER insert_measurement_trigger
BEFORE INSERT ON measurement
FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger();
6.插入数据
insert into measurement(city_id,logdate,peaktemp,unitsales) VALUES (1,'2013-03-02',1,1);
insert into measurement(city_id,logdate,peaktemp,unitsales) VALUES (2,'2013-04-02',2,2);
insert into measurement(city_id,logdate,peaktemp,unitsales) VALUES (3,'2013-05-02',3,3);
7.查询数据.
select *from measurement
select *from measurement_201303;
select *from measurement_201304;
select *from measurement_201305;
内容总结
以上是互联网集市为您收集整理的postgresql创建分区全部内容,希望文章能够帮你解决postgresql创建分区所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。