One of the benefit is that instead of LLM blindly advising you to do
> ALTER TABLE customers ALTER COLUMN email SET NOT NULL;
it can advise you to
-- Step 1: backfill NULLs
UPDATE customers
SET email = 'unknown-' || id || '@example.com'
WHERE email IS NULL;
-- Step 2: add constraint without full table scan
ALTER TABLE customers
ADD CONSTRAINT customers_email_not_null
CHECK (email IS NOT NULL) NOT VALID;
-- Step 3: validate in the background with a weaker lock
ALTER TABLE customers
VALIDATE CONSTRAINT customers_email_not_null;