Nous avons constaté que les clés primaires sont souvent en retard sur le nom de la table principale. Ce script nous a aidés à identifier et à résoudre les problèmes.
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';
Cela trouve toutes les tables où le nom de la clé primaire n'est plus le modèle "par défaut" ( <tablename>_pkey
) et crée un script de changement de nom pour chacune.
La limite de 58 caractères ci-dessus dans le code ci-dessus est de tenir compte de la taille maximale des noms de contraintes (63 octets).
Évidemment, vérifiez ce qui est renvoyé avant de l'exécuter. J'espère que cela sera utile pour les autres.