Chúng tôi nhận thấy rằng các khóa chính thường bị tụt hậu so với tên bảng chính. Tập lệnh này đã giúp chúng tôi xác định và khắc phục những tập lệnh có vấn đề.
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';
Thao tác này tìm tất cả các bảng mà tên khóa chính không còn là mẫu "mặc định" ( <tablename>_pkey
) và tạo tập lệnh đổi tên cho mỗi bảng.
Giới hạn 58 ký tự ở trên trong đoạn mã trên là tính đến kích thước tối đa của tên ràng buộc (63byte).
Rõ ràng là ý thức kiểm tra những gì được trả về trước khi chạy nó. Hy vọng điều đó sẽ hữu ích cho những người khác.