PostgreSQL ドロップ主キー
Shihab Sikder
2023年6月20日
この記事では、ALTER TABLE
クエリを使用して PostgreSQL で主キー制約を削除する方法について説明します。
PostgreSQL で主キーを削除する
テーブルがあり、primary key
フィールドを削除したいとします。 従業員の次の表を見てください。
\d table_name
を使用すると、各列のフィールド名とタイプを確認できます。
postgres=# \d record
Table "public.record"
Column | Type | Collation | Nullable | Default
----------+-----------------------+-----------+----------+---------
id | integer | | not null |
username | character varying(50) | | |
email | character varying(50) | | |
gender | character varying(50) | | |
company | character varying(50) | | |
Indexes:
"record_pkey" PRIMARY KEY, btree (id)
コード スニペットは、id
が主キーであり、制約が record_pkey
であることを示しています。 primary key
列を削除しましょう。
既存の主キーを削除する構文。
ALTER TABLE table_name DROP CONSTRAINT primary_key_constraint;
ここに record
という名前のテーブルがあります。 id
をレコード テーブルから削除するには、クエリは次のようになります。
ALTER TABLE record
DROP CONSTRAINT record_pkey;
postgres=# ALTER TABLE record
postgres-# DROP CONSTRAINT record_pkey;
ALTER TABLE
では、テーブルの説明を見てみましょう。 線が見えないはずです。
"record_pkey" PRIMARY KEY, btree (id)
列全体ではなく主キー制約を削除しているため、ID
列はテーブルに残ります。 主キーとして扱われません。
\d records
と入力すると、次の出力が得られるはずです。
postgres=# \d record;
Table "public.record"
Column | Type | Collation | Nullable | Default
----------+-----------------------+-----------+----------+---------
id | integer | | not null |
username | character varying(50) | | |
email | character varying(50) | | |
gender | character varying(50) | | |
company | character varying(50) | | |
postgres=#
多くの ALTER TABLE
クエリがあります。 公式ドキュメント を見ることができます。 また、primary key
列を編集できます。つまり、主キーを変更できます。
著者: Shihab Sikder