postgreSqlはトリガーを利用してダイナミックスを作成します。

934 ワード

postgresqlでプログラム運転中に挿入データ条件に基づいて新しいテーブルを生成する必要があるなら、フリップフロップを利用してダイナミックテーブルを作成することができます。
これはデータベースのテーブルパーティションで利用できます。
具体的なsql文は:

--       
CREATE TABLE test1(   
  name text,   
  id integer   
);   
  
--          
CREATE FUNCTION testTriger() RETURNS trigger AS $$   
BEGIN   
  IF NEW.id>10 THEN    
   CREATE TABLE test_2( --           
    )INHERITS (test1);  --  test1    
  END IF;   
return NEW;   
END;   
$$LANGUAGE plpgsql;   
  
---             
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON test1  FOR EACH ROW EXECUTE PROCEDURE testTriger();   
  
          id   10         test_2   
  
  
  :   
      plpgsql language  ,     :   
CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler   
LANCOMPILER 'PL/pgSQL'