Abbiamo scoperto che le chiavi primarie spesso sono in ritardo rispetto al nome della tabella principale. Questo script ci ha aiutato a identificare e risolvere quelli con problemi.
select
table_name,
constraint_name ,
'ALTER TABLE ' || table_name || ' RENAME CONSTRAINT ' || constraint_name || ' TO ' || left(table_name, 58) || '_pkey;'
from information_schema.table_constraints tc
where constraint_type = 'PRIMARY KEY'
and constraint_name <> left(table_name, 58) || '_pkey';
Questo trova tutte le tabelle in cui il nome della chiave primaria non è più il pattern "predefinito" ( <tablename>_pkey
) e crea uno script di ridenominazione per ciascuna.
Il limite di 58 caratteri sopra nel codice precedente serve per tenere conto della dimensione massima dei nomi dei vincoli (63 byte).
Ovviamente il senso controlla ciò che viene restituito prima di eseguirlo. Spero che sia utile per gli altri.