sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQL/pgAdmin4でシリアルデータ型からIDデータ型に切り替えた後の列の重複

    長い検索の結果、私が見つけたものは次のとおりです。

    実際、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

    1. SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';を実行します 重複するシーケンスを特定します(つまり、最後に1が付いているバージョンと付いていないバージョンがあるもの)

    2. DROP SEQUENCE <sequenceName_seq>;を使用して不要なシーケンスを削除します (末尾に1が付いていないもののみ削除できます)

    3. pgAdmin4を更新




    1. ALL_PROCEDURESビューにPROCEDURE_NAMEが表示されない

    2. ArrayListは同じデータを繰り返します

    3. mysqlテーブルにPythonのランダムデータを入力します

    4. ユーザー、スレッド、投稿を管理するための基本的なデータ構造のモデリング