postgres

 La CREAR  O  SUSTITUIR  la FUNCIÓN auto_insert_into_tbl_partition ()
   RETURNS  de activación  AS 
$ $ El cuerpo 
del DECLARE 
    time_column_name      texto ;         - un campo de hora, la fecha está determinada por el tiempo de esta sub-mesa, parte de una necesaria 
    curMMDD          VARCHAR ( 16 );     - cadena de formato 'AAAAMMDD' , usado tabla sub-partición sufijo 
    ISEXIST Boolean;         - el análisis de la sub-tabla adicional ya existe 
    strSQL           texto ; 
    
Begin 
    - obtener del time_column_name parámetro de llamada 
    time_column_name: = TG_ARGV [ 0 ] ;
   
    - El análisis de la tabla de particiones correspondientes ya existe 
    la EJECUTAR  '. SELECT 1 $ ' || time_column_name la EN strSQL el uso de las nuevas; 
    : curMMDD = TO_CHAR (strSQL :: marca de tiempo , ' AAAAMMDD ' ;)
     SELECT  COUNT ( . 1 ) de la EN ISEXIST desde la entrada pg_class que DONDE nombre_rel = ( ' t_audit_ ' || curMMDD); 
 
    - si no crear sub-particiones de inserción 
    el iF (ISEXIST = false) entonces   
        -Crear un niño hereda la tabla padre tabla de particiones 
        strSQL: =  ' la TABLA creado si existe, no t_audit_ ' || curMMDD || ' () INHERITS (t_audit); ' ;  
         EJECUTAR strSQL;
         - la creación de un índice 
        strSQL: =  ' CREATE INDEX t_audit_ ' || curMMDD || ' _INDEX_ ' || time_column_name || ' ON t_audit_ ' || curMMDD || ' ( ' || time_column_name || '); ' ;
         La EJECUTAR strSQL;
     END  IF ; 
 
    - insertar datos en la partición niño! 
    StrSQL: =  ' INSERT INTO t_audit_ ' || curMMDD || ' SELECT * $ 1. ' ;
     EJECUTAR strSQL el NUEVO USO;
     RETURN  NULL ; 
 END 
$ $ el CUERPO 
plpgsql IDIOMA; 
 

- crear un disparador, desencadenar la operación INSERT 
al crear  desencadenar insert_tbl_partition_trigger 
  la ANTES DE INSERTAR 
  eN t_audit
   la PARA CADA FILA
   EJECUTAR PROCEDIMIENTO auto_insert_into_tbl_partition ( ' tiempo ' );

El conjunto es este código, puede completar una operación simple de acuerdo con el cronograma.

Supongo que te gusta

Origin www.cnblogs.com/XiaoBoya/p/12672977.html
Recomendado
Clasificación