長い検索の結果、私が見つけたものは次のとおりです。
実際、psqlを使用して確認できる列は1つだけです。ただし、コマンドpg_dump -st names <databasename>
を使用します。 bashから、id列に関連付けられて定義されている2つのシーケンスがあることに気付きました:public.names_id_seq
およびpublic.names_id_seq1
。
これは、SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
を実行して確認することもできます。 両方のシーケンスが表示されるpsqlから。
public.names_id_seq1
を削除しようとした場合 エラーERROR: cannot drop sequence apis_id_seq1 because column id of table apis requires it
というエラーが発生します。 。
ソリューション DROP SEQUENCE names_id_seq;
の最初のシーケンスを削除することです pgAdmin4を更新した後、2番目の列がなくなりました。
TL; DR
-
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
を実行します 重複するシーケンスを特定します(つまり、最後に1が付いているバージョンと付いていないバージョンがあるもの) -
DROP SEQUENCE <sequenceName_seq>;
を使用して不要なシーケンスを削除します (末尾に1が付いていないもののみ削除できます) -
pgAdmin4を更新