PostgreSQL プライマリキーを削除する

PostgreSQL プライマリキーを削除する

PostgreSQLでプライマリキーを削除する手順を記述してます。PostgreSQLのバージョンは13.1となります。

環境

  • OS ubuntu20.10
  • PostgreSQL 13.1

プライマリキーを削除

ここでは、testsテーブルのカラム名「id」に設定されているプライマリキー「tests_pkey」を削除します。

プライマリキーを削除するに、以下のクエリを実行します。

ALTER TABLE tests DROP CONSTRAINT tests_pkey;

構文

ALTER TABLE テーブル名 DROP CONSTRAINT プライマリキー名;

削除されたことが確認できます。

プライマリキーを確認

プライマリキーは、psqlを使用して
「\d テーブル名 Table “public.テーブル名”」
でも確認できます。

データベース名=# \d tests Table "public.tests"

                                          Table "public.tests"
   Column   |              Type              | Collation | Nullable |              Default
------------+--------------------------------+-----------+----------+-----------------------------------
 id         | bigint                         |           | not null | nextval('tests_id_seq'::regclass)
 name       | character varying              |           |          |
 email      | character varying              |           |          |
 created_at | timestamp(6) without time zone |           | not null |
 updated_at | timestamp(6) without time zone |           | not null |
Indexes:
    "tests_pkey" PRIMARY KEY, btree (id)

\d: extra argument "Table" ignored
\d: extra argument ""public.tests"" ignored

画像

プライマリキーを追加

逆に、追加は以下のコマンドで可能です。
ここでは、カラム「id」に「tests_pkey」というプライマリキーを設定してます。

ALTER TABLE tests ADD CONSTRAINT tests_pkey PRIMARY KEY(id);

構文

ALTER TABLE テーブル名 ADD CONSTRAINT プライマリキー名 PRIMARY KEY(カラム名);