SELECT con.conname AS constraint_name,
rel.relname AS table_name,
array_agg(col.attname) AS columns
FROM pg_constraint con
JOIN pg_class rel ON rel.oid = con.conrelid
JOIN pg_namespace nsp ON nsp.oid = con.connamespace
JOIN pg_attribute col ON col.attrelid = con.conrelid
AND col.attnum = ANY (con.conkey)
WHERE con.contype = 'u' -- only UNIQUE constraints
AND nsp.nspname = 'public' -- your schema (adjust if needed)
GROUP BY con.conname, rel.relname
ORDER BY rel.relname, con.conname;