postgresql创建分区

php中文网
发布: 2016-06-07 14:58:41
原创
1995人浏览过

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

) INHERITS(measurement);

create table measurement_201304(

    CHECK(logdate>=DATE'2013-04-01' and logdate

) INHERITS(measurement);

create table measurement_201305(

    CHECK(logdate>=DATE'2013-05-01' and logdate

) 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

            insert into measurement_201303 VALUES(NEW.*);

  ELSEIF(NEW.logdate >=date'2013-04-01' and NEW.logdate

        insert into measurement_201304 VALUES(NEW.*);

    ELSEIF(NEW.logdate >=date'2013-05-01' and NEW.logdate

            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;

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号