On 11/30/25 19:07, Adrian Klaver wrote:
On 11/30/25 16:59, Stuart Campbell wrote:
Hello,

I have several NOT NULL check constraints in my schema that were originally added as NOT VALID. I would like to determine whether they have all since been validated, or not.

I thought maybe pg_constraint.convalidated might help, but it seems like the version of Postgres I'm using (16) doesn't store not null constraints in that table. And even in later versions, maybe it doesn't hold the information I need.

Is there another way to discover this?

1) Select count(*) from <table> where <col> IS NULL;

2) From here

https://www.postgresql.org/docs/current/sql-altertable.html#SQL- ALTERTABLE-NOTES

ALTER TABLE <table> VALIDATE CONSTRAINT <constraint_name>;

As described:

". Once the constraint is in place, no new violations can be inserted, and the existing problems can be corrected at leisure until VALIDATE CONSTRAINT finally succeeds."

Realized I was looking at current docs and I should be looking at your version

From the 16 version of the docs:

"This form adds a new constraint to a table using the same constraint syntax as CREATE TABLE, plus the option NOT VALID, which is currently only allowed for foreign key and CHECK constraints."

Now I am not sure what you did.

Are you saying you used a CHECK constraint to check for NULL values?

If so then pg_constraint.convalidated would work.

If not are you sure you are on Postgres 16?




This communication and any attachments may contain confidential information and are intended to be viewed only by the intended recipients. If you have received this message in error, please notify the sender immediately by replying to the original message and then delete all copies of the email from your systems.






--
Adrian Klaver
[email protected]


Reply via email to