広告 SQL

【SQL】プライマリキー(PRIMARY KEY)の追加・削除

プライマリキーの追加

プライマリキー(英:PRIMARY KEY、略:PK)は「CREATE TABLE」でテーブルを作成するときに追加することができます。また「ALTER TABLE」で後から追加することも可能です。

※「CREATE TABLE」でプライマリーキーを追加する例は「こちら」の記事をご覧ください。

スポンサーリンク

「ALTER TABLE」でプライマリキーを追加する基本構文は次の通り。

PK追加の基本構文

ALTER  TABLE  テーブル名  ADD  PRIMARY KEY (カラム名);

※複数のカラムをPKにする場合は、カンマ区切りでカラム名を複数指定(例:カラム名1, カラム名2・・・)

ALTER TABLEでプライマリキーを追加する

以下は「ALTER TABLE」を使い「sample」テーブルにプライマリキーを追加する例です。

■プライマリキー追加前

> SHOW COLUMNS FROM sample;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int          | NO   |     | NULL    |       |
| name    | varchar(45)  | NO   |     | NULL    |       |
| address | varchar(255) | YES  |     | NULL    |       |
| age     | int          | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

■ALTER TABLEによるプライマリキー追加の実行例

ALTER TABLE sample ADD PRIMARY KEY (id);

■プライマリキー追加後

> SHOW COLUMNS FROM sample;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int          | NO   | PRI | NULL    |       |
| name    | varchar(45)  | NO   |     | NULL    |       |
| address | varchar(255) | YES  |     | NULL    |       |
| age     | int          | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

「ALTER TABLE」でプライマリキーを追加した結果、「id」カラムがプライマリキーになりました。

プライマリキーの削除

以下は「ALTER TABLE」を使い「sample」テーブルのプライマリキーを削除する例です。

PK削除の基本構文

ALTER  TABLE  テーブル名  DROP  PRIMARY KEY;

ALTER TABLE でプライマリキーを削除する

それでは「ALTER TABLE」を使い、「sample」テーブルにプライマリキーを削除します。

■プライマリキー削除前

> SHOW COLUMNS FROM sample;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int          | NO   | PRI | NULL    |       |
| name    | varchar(45)  | NO   |     | NULL    |       |
| address | varchar(255) | YES  |     | NULL    |       |
| age     | int          | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

■ALTER TABLEによるプライマリキー削除の実行例

ALTER TABLE sample DROP PRIMARY KEY;

■プライマリキー削除後

> SHOW COLUMNS FROM sample;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int          | NO   |     | NULL    |       |
| name    | varchar(45)  | NO   |     | NULL    |       |
| address | varchar(255) | YES  |     | NULL    |       |
| age     | int          | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

「ALTER TABLE」でプライマリキーを削除した結果、「id」カラムに設定されていたプライマリキーが削除されました。

helpful