Re: Temporarily disable not null constraints - Mailing list pgsql-performance

From Milos Babic
Subject Re: Temporarily disable not null constraints
Date
Msg-id CAPVD16t0UPFiSPJrpefObeU5c60BEhxP7SuA-dPHGAcHSChZwg@mail.gmail.com
Whole thread Raw
In response to Temporarily disable not null constraints  (Nagaraj Raj <nagaraj.sf@yahoo.com>)
List pgsql-performance
generally, you shouldn't be disabling your constraints, especially if you are having multiple parallel processes accessing your db.
instead, you should create them DEFERRABLE and have them checked at the end of your transaction.

regarding your question about NOT NULL: it is not possible to have it deferred (please check this page: https://www.postgresql.org/docs/13/sql-set-constraints.html)
you may alter your column, remove it, and then get it back, but still all rows will have to be checked, which I doubt you would like to see on a large table.

regards, milos



On Thu, Dec 3, 2020 at 9:00 PM Nagaraj Raj <nagaraj.sf@yahoo.com> wrote:
Hi,

Can we disable not null constraints temporarily in the session-based transaction, like we disable FK constraints? 

SET session_replication_role = ‘replica’; 
alter table table_name disable trigger user;”

above two options are working for unique constraints violation exception. 

Thanks,
Rj


pgsql-performance by date:

Previous
From: Michael Lewis
Date:
Subject: Re: Temporarily disable not null constraints
Next
From: Justin Pryzby
Date:
Subject: Re: Temporarily disable not null constraints