亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5057 | 回復: 3
打印 上一主題 下一主題

[PGSQL]自動分區(qū)問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-07-06 15:46 |只看該作者 |倒序瀏覽
我現(xiàn)在有一個需求,一個表的數(shù)據(jù)量非常大,所以打算進行分區(qū)。
我現(xiàn)在打算每2天的數(shù)據(jù)存放在一個表內(nèi)。
請問PGSQL能不能進行自動建表,比如當插入一條記錄的時候都有時間。發(fā)現(xiàn)該時間的表還沒有建立
表分區(qū)則自動建立一個分區(qū),然后插入該數(shù)據(jù)。

請大家給一個思路,目前還在看PGSQL的手冊。

謝謝!

論壇徽章:
0
2 [報告]
發(fā)表于 2010-07-09 16:01 |只看該作者
回復 1# wzhuzhu


請通過以下過程:
  1. CREATE SEQUENCE public.seq_bigtable_id;

  2. CREATE TABLE public.bigtable
  3. (
  4.   id bigint NOT NULL DEFAULT nextval('seq_bigtable_id'::regclass),
  5.   tdate timestamp without time zone NOT NULL,
  6.   CONSTRAINT bigtable_pkey PRIMARY KEY (id)
  7. );

  8. CREATE INDEX idx_bigtable_tdate
  9.   ON public.bigtable (tdate);

  10. -- Trigger: bigtable_part_trig on public.bigtable

  11. -- DROP TRIGGER bigtable_part_trig ON public.bigtable;

  12. CREATE OR REPLACE TRIGGER bigtable_part_trig
  13.   BEFORE INSERT
  14.   ON public.bigtable
  15.   FOR EACH ROW
  16. DECLARE
  17.         v_part_tbl_name VARCHAR2;
  18.         v_tbl_exist int;
  19.         v_tbl_interval int;
  20. BEGIN
  21.         IF mod(EXTRACT(DOY FROM :NEW.tdate)::int,2) = 0 THEN
  22.                 v_part_tbl_name := 'bigtable_' || to_char(NEW.tdate,'YYYYMMDD');
  23.                 v_tbl_interval := 1;
  24.         ELSE
  25.                 v_part_tbl_name := 'bigtable_' || to_char(NEW.tdate-1,'YYYYMMDD');
  26.                 v_tbl_interval := -1;
  27.         END IF;
  28.         SELECT count(*) INTO v_tbl_exist FROM pg_tables WHERE schemaname='public' and tablename=v_part_tbl_name;
  29.         IF v_tbl_exist = 0 THEN
  30.                 IF v_tbl_interval = 1 THEN
  31.                         EXECUTE IMMEDIATE 'CREATE TABLE public.' ||
  32.                         v_part_tbl_name || ' (CHECK (tdate >= ''' ||
  33.                         to_char(:NEW.tdate,'YYYY-MM-DD') ||
  34.                         ''' and tdate <= ''' || to_char(:NEW.tdate+v_tbl_interval,'YYYY-MM-DD') ||
  35.                         ''')) INHERITS (public.bigtable);';
  36.                 ELSE
  37.                         EXECUTE IMMEDIATE 'CREATE TABLE public.' ||
  38.                         v_part_tbl_name || ' (CHECK (tdate <= ''' ||
  39.                         to_char(:NEW.tdate,'YYYY-MM-DD') ||
  40.                         ''' and tdate >= ''' || to_char(:NEW.tdate+v_tbl_interval,'YYYY-MM-DD') ||
  41.                         ''')) INHERITS (public.bigtable);';
  42.                 END IF;
  43.         END IF;
  44.         EXECUTE IMMEDIATE 'INSERT INTO public.' || v_part_tbl_name || '
  45.         VALUES (DEFAULT,''' || :NEW.tdate || ''');';
  46.         RETURN NULL;
  47. END;
復制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2010-07-21 15:12 |只看該作者
回復  wzhuzhu


請通過以下過程:
scottsiu 發(fā)表于 2010-07-09 16:01

謝謝回復,非常感謝。
我隨后測試一下。

論壇徽章:
59
2015七夕節(jié)徽章
日期:2015-08-24 11:17:25ChinaUnix專家徽章
日期:2015-07-20 09:19:30每周論壇發(fā)貼之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38榮譽版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年紀念徽章
日期:2015-07-20 11:05:27IT運維版塊每日發(fā)帖之星
日期:2015-07-20 11:05:34操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:36程序設計版塊每日發(fā)帖之星
日期:2015-07-20 11:05:40數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-07-20 11:05:432015年辭舊歲徽章
日期:2015-07-20 11:05:44
4 [報告]
發(fā)表于 2010-07-21 15:58 |只看該作者
學習了。不錯。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP