Re: Check whether a NOT NULL check constraint has been validated
| От | Adrian Klaver |
|---|---|
| Тема | Re: Check whether a NOT NULL check constraint has been validated |
| Дата | |
| Msg-id | 301832e8-a3d7-46f5-9db5-691b71eee9ac@aklaver.com обсуждение исходный текст |
| Ответ на | Re: Check whether a NOT NULL check constraint has been validated (Adrian Klaver <adrian.klaver@aklaver.com>) |
| Ответы |
Re: Check whether a NOT NULL check constraint has been validated
|
| Список | pgsql-general |
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 adrian.klaver@aklaver.com
В списке pgsql-general по дате отправления: