カラムに一意制約(ユニークキー)を追加・削除する書き方~UNIQUE~

MySQL

カラムにほかのデータと重複しない一意制約(ユニークキー)の追加と削除をする書き方について紹介していきます

テーブル作成時にユニークキーを設定する

テーブル作成時にユニークキーを設定する方法について紹介していきます

テーブル作成の構文

create table テーブル名(カラム名 データ型 オプション,
                        カラム名 データ型 オプション);

コードの見方

青文字・・・省略できない決まり文句
紫文字・・・コメント
白文字・・・利用者の任意で入力する文字列

テーブル名:作成するテーブルの名前を記載する

カラム名:テーブルに作成する列名を記載する

データ型:カラムに対してデータ型(int,varcharなど)を指定する

オプション:以下を指定する

  • unique key・・・指定したカラムを重複不可とする

テーブル作成に関する詳細な記事は以下を参照

使用するSQL

create table drinks(id int not null auto_increment primary key,
                    name varchar(255) not null unique key,
                    price int not null);

上記を実行してカラムの制約を確認します

テーブル構造を確認する

show columns from drinks;

出力結果

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | NO   | UNI | NULL    |                |
| price | int(11)      | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.017 sec)

nameカラムにUNIQUEと設定されていることがわかります。

以降の章では上記のテーブルを利用していきます

ユニークキーを削除・追加する

テーブル作成後でもユニークキー(一意制約)を削除・追加することができます

ユニークキーをカラムから削除する

上記で作成したテーブルのユニークキーをnameカラムから削除していきます

構文

alter table テーブル名 drop constraint カラム名;
  • テーブル名・・・ユニークキーを削除したいカラムのあるテーブルを指定
  • カラム名・・・ユニークキ―の付与されているカラム名を指定

テーブル名はdrinksテーブルを指定

カラム名はユニークキーを設定したnameカラムを指定

使用するSQL

alter table drinks drop constraint name;

上記を実行してからテーブル構造を確認する

出力結果

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | NO   |     | NULL    |                |
| price | int(11)      | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.015 sec)

nameカラムからUNIQUEが削除されていることがわかります。

ユニークキーをカラムに追加する

再度ユニークキーをnameカラムに追加していきます

構文

alter table テーブル名 add constraint unique(カラム名);
  • テーブル名・・・ユニークキーを追加したいカラムのあるテーブルを指定
  • カラム名・・・ユニークキ―を追加したいカラム名を指定

テーブル名はdrinksテーブルを指定

カラム名はnameカラムを指定

使用するSQL

 alter table drinks add constraint unique(name);

上記を実行してからテーブル構造を確認する

出力結果

+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | NO   | UNI | NULL    |                |
| price | int(11)      | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.013 sec)

nameカ nameカラムにUNIQUEと設定されていることがわかります。

タイトルとURLをコピーしました