Ми виявили, що первинні ключі часто відстають від назви основної таблиці. Цей сценарій допоміг нам виявити та виправити тих, хто має проблеми.
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';
Це знаходить усі таблиці, де ім’я первинного ключа більше не є шаблоном "за замовчуванням" ( <tablename>_pkey
), і створює сценарій перейменування для кожного.
Обмеження 58 символів, наведене вище у коді, має враховувати максимальний розмір імен обмежень (63 байт).
Очевидно, сенс перевірити, що повертається, до запуску. Сподіваюся, що це корисно для інших.