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