I need to add a foreign key definition to a very large table in Postgres. (Let’s assume for the moment that I’m positive that every FK value is actually valid.)
I know that I can specify
NOT VALID in order to prevent Postgres from taking aggressive locks on the table while validating the foreign key. Then I can go back "at leisure" and run
VALIDATE CONSTRAINT as a cleanup.
What if I never bothered going back to run
VALIDATE CONSTRAINT? Is there any practical effect of not doing so?