zoukankan      html  css  js  c++  java
  • postgresql分区(引用)

       1 建立大表。
       2 创建分区继承
       3 定义Rule或者Trigger?

    1 建立大表    
        CREATE TABLE student (student_id bigserial, name varchar(32), score smallint)

    2 创建分区继承

      1. CREATE TABLE student_qualified (CHECK (score >= 60 )) INHERITS (student) ;
      2. CREATE TABLE student_nqualified (CHECK (score < 60)) INHERITS (student) ;
     3 定义Rule或者Trigger
    (1)创建rule

      CREATE OR REPLACE RULE insert_student_qualified 
    AS ON INSERT TO student 
     WHERE score >= 60
    DO INSTEAD

     INSERT INTO student_qualified VALUES(NEW.*);

    CREATE OR REPLACE RULE insert_student_nqualified 

    AS ON INSERT TO student 

          WHERE score < 60

          DO INSTEAD

          INSERT INTO student_nqualified VALUES(NEW.*);

    (2)创建方法及触发器

    REATE OR REPLACE FUNCTION student_insert_trigger()
    RETURNS TRIGGER AS 
    $$

          BEGIN 
          IF(NEW.score
     >= 60) THEN
          INSERT
     INTO student_qualified VALUES (NEW.*);
           ELSE
     
           INSERT
     INTO student_nqualified VALUES (NEW.*);
          END
     IF;
           RETURN
     NULL;
        END;

    $$

    LANGUAGE plpgsql ;

    //创建触发器

    REATE TRIGGER insert_student 
     BEFORE INSERT ON student
        FOR EACH row
     EXECUTE PROCEDURE student_insert_trigger() ;

  • 相关阅读:
    网易企业免费邮箱
    168. Excel Sheet Column Title
    167.Two Sum II-Input array is sorted
    166. Fraction to Recurring Decimal
    165 Compare Version Numbers
    164. Maximum Gap
    163.Missing Ranges
    162.Find Peak Element
    161.One Edit Distance
    160. Intersection of Two Linked Lists
  • 原文地址:https://www.cnblogs.com/jinyuttt/p/6492599.html
Copyright © 2011-2022 走看看