Re: BUG #18516: Foreign key data integrity is not validated when reenabled the trigger on tables

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: mujjamil995(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #18516: Foreign key data integrity is not validated when reenabled the trigger on tables
Date: 2024-06-20 12:10:37
Message-ID: 412ed2e042c5cb552acfa45b01201083dcaae446.camel@cybertec.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, 2024-06-20 at 09:10 +0000, PG Bug reporting form wrote:
> I come up with a weird issue in the PostgreSQL 15.6 version. To update the
> data in the tables I generally disable all triggers on the table using the
> superuser privilege and enable the after the data copy to avoid the checking
> the parent and child tables sequence. During the enable process FK
> constraint should check the data integrity between the child and parent
> tables. but somehow this is skipped and trigger enabled without any issue
> and later during the data restoration this issue is identified.

You wish that enabling the triggers would check the foreign key constraint,
but it doesn't. All it does is prevent new foreign key violations from
happening.

If you disable the system triggers that implement the foreign key, all
bets are off, and you have to make sure that only correct data are
loaded. This potential for data corruption is why only superusers can
disable system triggers.

Leave the foreign key triggers enabled while you load data.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Mujjamil k 2024-06-20 12:53:16 Re: BUG #18516: Foreign key data integrity is not validated when reenabled the trigger on tables
Previous Message PG Bug reporting form 2024-06-20 11:00:01 BUG #18517: Dropping a table referenced by an initially deferred foreign key fails with an error