プライマリキーの追加
プライマリキー(英: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」カラムに設定されていたプライマリキーが削除されました。