Nous avons constaté que les clés primaires sont souvent en retard sur le nom de la table principale. Ce script nous a permis d'identifier et de corriger celles qui posaient problème.
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';
Ceci 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 renommage script pour chacun.
La limite de 58 caractères dans le code ci-dessus est destinée à tenir compte de la taille maximale des noms de contraintes (63bytes).
Il faut évidemment vérifier ce qui est renvoyé avant de l'exécuter. J'espère que cela sera utile à d'autres.