Sau thời gian dài tìm kiếm, đây là những gì tôi tìm thấy:
Thực sự chỉ có một cột có thể được xác nhận bằng cách sử dụng psql. Tuy nhiên bằng cách sử dụng lệnh pg_dump -st names <databasename> từ bash, tôi nhận thấy rằng có 2 chuỗi được xác định liên kết với cột id:public.names_id_seq và public.names_id_seq1 .
Điều này cũng có thể được xác nhận bằng cách chạy SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'; từ psql nơi cả hai chuỗi đều hiển thị.
Nếu ai đó cố gắng xóa public.names_id_seq1 một người gặp lỗi ERROR: cannot drop sequence apis_id_seq1 because column id of table apis requires it .
Giải pháp là xóa chuỗi đầu tiên có DROP SEQUENCE names_id_seq; Sau khi làm mới pgAdmin4, cột thứ hai đã biến mất.
TL; DR
-
Chạy
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';và xác định các trình tự trùng lặp (tức là những trình tự có phiên bản có và một trình tự không có số 1 ở cuối) -
Xóa chuỗi thừa bằng
DROP SEQUENCE <sequenceName_seq>;(chỉ cái không có số 1 ở cuối mới có thể bị xóa) -
Làm mới pgAdmin4