【MySQL】主キー/プライマリーキーの設定/追加/変更/削除


ここではMySQLで、主キー/プライマリーキーを設定/追加/変更/削除する方法を紹介しています。

主キーの確認については↓で紹介していますので参考にしてください。
>>【MySQL】主キー/プライマリーキーを確認する方法

主キー/プライマリーキーの設定/追加/変更/削除

主キーの設定:CREATE TABLE文

CREATE TABLE文でテーブルを作成するときに、同時に主キー/プライマリーキー制約を作成することが出来ます。

CREATE TABLE文で主キー制約を設定したい項目に、PRIMARY KEYキーワードを記述します。

次のSQLでは、emp_id列に主キー制約を設定しています。

CREATE TABLE tab1(
 emp_id varChar(10) PRIMARY KEY
 ,emp_name varChar(100)
 ,dept varChar(10) 
 ,age int
 );

PRIMARY KEYキーワードは次のようにカラムの並びの最後に記述することもできます。

CREATE TABLE tab1(
 emp_id varChar(10)
 ,emp_name varChar(100)
 ,dept varChar(10) 
 ,age int
 ,PRIMARY KEY(emp_id)
 );

また、次のように複数のカラムで主キーを構成することも出来ます。

CREATE TABLE tab1(
 emp_id varChar(10)
 ,emp_name varChar(100)
 ,dept varChar(10) 
 ,age int
 ,PRIMARY KEY(emp_id,emp_name)
 );

主キーの追加:ALTER TABLE文

ALTER TABLE文を使うことで、既存のテーブルに主キー/プライマリーキーを追加することが出来ます。

ALTER TABLE文で主キー制約を追加する構文は次の通りです。

ALTER TABLE テーブル名 ADD PRIMARY KEY (列名1[,列名2...]);

次のSQLでは、tab1テーブルのemp_id列に主キーを追加しています。

ALTER TABLE tab1 ADD PRIMARY KEY (emp_id);

次のように複数のカラムで主キーを構成することもできます。

ALTER TABLE tab1 ADD PRIMARY KEY (emp_id,emp_name);

主キーの変更

主キーを変更するには、既存の主キーの削除と新しい主キー制約の設定が必要になります。

--主キーの削除
ALTER TABLE テーブル名 DROP PRIMARY KEY;

--主キーの設定
ALTER TABLE テーブル名 ADD PRIMARY KEY (列名1[,列名2...]);

主キーの削除と追加を1文で実行することもできます。

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

主キーの削除

ALTER TABLE文を使うことで、主キーを削除することが出来ます。

ALTER TABLE文で主キー制約を削除する構文は次の通りです。

ALTER TABLE テーブル名 DROP PRIMARY KEY;

次のSQLでは、tab1テーブルの主キーを削除しています。

ALTER TABLE tab1 DROP PRIMARY KEY;