Postgresql - PartitionTypes of Partitions : 1.Range partitions : A range of numbers is used to divide the data into segments. Organizing a sales table by year is one example. 2.List Partitions : A list of predetermined values is used to divide the data. Example: Dividing client information by nation. Table : CREATE TABLE TXN ( TDATE DATE, START_DATE integer, END_DATE int, PNUMBER int, ACODE VARCHAR(2) ) ;Range partition : CREATE TABLE TXN_RANGE (TDATE DATE, START_DAT INT,END_DATE INT,PNUMBER INT, ACODE VARCHAR(2)) PARTITION BY RANGE (TDATE);Partition : PLPGSQL Code: do $$ declare z int; i int; j int; begin for z in 0..11 loop for i in 1..323 loop for j in 1..31 loop insert into txn values(current_date-433+j+(31*z),1212*i,2323232*i,122323*i, (select case round(random()*5) when 0 then 'CN' when 1 then 'CN' when 2 then 'MD' when 3 then 'CO' when 4 then 'TR' when 5 then 'CN' END)); end loop; end loop; end loop; commit; end $$;Range partition : CREATE TABLE TXN_RANGE ( TDATE DATE, START_DATE INT, END_DATE INT, PNUMBER INT, ACODE VARCHAR(2)) PARTITION BY RANGE (TDATE);Range partition : CREATE TABLE TXN_RANGE_dec_mar24 PARTITION OF TXN_RANGE FOR VALUES FROM ('2023-12-17') TO ('2024-04-01') partition by LIST(ACODE); List SUB partition : CREATE TABLE TXN_RLIST_CNMD_dec_mar24 PARTITION OF TXN_RANGE_dec_mar24 FOR VALUES in ('CN','MD'); CREATE TABLE TXN_RLIST_COTR_dec_mar24 PARTITION OF TXN_RANGE_dec_mar24 FOR VALUES in ('CO','TR');Range partition : CREATE TABLE TXN_RANGE_apr_jun24 PARTITION OF TXN_RANGE FOR VALUES FROM ('2024-04-01') TO ('2024-07-01') partition by LIST(ACODE); List SUB partition : CREATE TABLE TXN_RLIST_CNMD_apr_jun24 PARTITION OF TXN_RANGE_apr_jun24 FOR VALUES in ('CN','MD'); CREATE TABLE TXN_RLIST_COTR_apr_jun24 PARTITION OF TXN_RANGE_apr_jun24 FOR VALUES in ('CO','TR');Range partition : CREATE TABLE TXN_RANGE_jul_oct24 PARTITION OF TXN_RANGE FOR VALUES FROM ('2024-07-01') TO ('2024-11-01') partition by LIST(ACODE); List SUB partition : CREATE TABLE TXN_RLIST_CNMD_jul_oct24 PARTITION OF TXN_RANGE_jul_oct24 FOR VALUES in ('CN','MD'); CREATE TABLE TXN_RLIST_COTR_jul_oct24 PARTITION OF TXN_RANGE_jul_oct24 FOR VALUES in ('CO','TR');Range partition : CREATE TABLE TXN_RANGE_nov_dev_24 PARTITION OF TXN_RANGE FOR VALUES FROM ('2024-11-01') TO ('2024-12-23') partition by LIST(ACODE); List SUB partition : CREATE TABLE TXN_RLIST_CNMD_nov_dev_24 PARTITION OF TXN_RANGE_nov_dev_24 FOR VALUES in ('CN','MD'); CREATE TABLE TXN_RLIST_COTR_nov_dev_24 PARTITION OF TXN_RANGE_nov_dev_24 FOR VALUES in ('CO','TR');Data Insert : insert into txn_range select * from txn;How to add a partition from existing table : alter table txn_range attach partition txn_range_apr_jun24 for values from ('2024-04-01') TO ('2024-07-01');How to drop a partition from existing table : alter table txn_range detach partition txn_range_apr_jun24; « Previous Next Topic » (Postgresql - DBlink and FDW) |