Re: Not able to purge partition

From: sud <suds1434(at)gmail(dot)com>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
Cc: veem v <veema0000(at)gmail(dot)com>, pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Not able to purge partition
Date: 2024-04-01 20:11:40
Message-ID: CAD=mzVW5ixtcPOXS1R=e1P0D83zKSP6ic38Y5WK9xn+dnn2trg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Mar 21, 2024 at 6:18 PM Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
wrote:

>
> > [create some partitions, then drop a partition of the referenced table]
> >
>
> > SQL Error [P0001]: ERROR: cannot drop table
> schema1.test_part_drop_parent_p2024_02_01 because other objects depend on it
> > CONTEXT: SQL statement "DROP TABLE
> schema1.test_part_drop_parent_p2024_02_01"
>
> That's normal. If you create a foreign key constraint to a partitioned
> table, you
> can no longer drop a partition of the referenced table.
>
> What you *can* do is detach the partition and then drop it, but detatching
> will

be slow because PostgreSQL has to check for referencing rows.
>

*The best solution is to create the foreign key *not* between the
partitioned*
*tables, but between the individual table partitions. *

Interesting, even my thought was that the detach+drop parent partition will
only look into the specific child partition but not the whole child table.

However, out of curiosity, does this default foreign key setup i.e. foreign
keys between the table (but not between the partitions) also make the data
load into the child partitions slower ( as it must be then looking and
validating the presence of the keys across all the partitions of the parent
table)?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message sud 2024-04-02 05:38:03 Timestamp conversion Error in dynamic sql script
Previous Message jian he 2024-04-01 12:00:11 Re: Emitting JSON to file using COPY TO