一意制約(UNIQUE)の作成
一意制約(英:UNIQUE、ユニーク制約)は、「ALTER TABLE」で作成できます。
UNIQUE追加の基本構文
ALTER TABLE テーブル名 ADD CONSTRAINT 制約名 UNIQUE(カラム名);
※「CONSTRAINT 制約名」は省略可。省略した場合はカラム名が制約名となる。
一意制約(UNIQUE)の作成例
以下は「ALTER TABLE」を使い「sample」テーブルの「name」に一意制約(UNIQUE)を追加する例です。
■一意制約(UNIQUE)作成前
> SHOW CREATE TABLE sample;
CREATE TABLE `sample` (
`id` int NOT NULL,
`address` varchar(255) DEFAULT NULL,
`age` int DEFAULT NULL,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
■一意制約(UNIQUE)作成の例
ALTER TABLE sample ADD CONSTRAINT UK1 UNIQUE(name);
■一意制約(UNIQUE)作成後
> SHOW CREATE TABLE sampledb.sample;
CREATE TABLE `sample` (
`id` int NOT NULL,
`address` varchar(255) DEFAULT NULL,
`age` int DEFAULT NULL,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK1` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
一意制約(UNIQUE)を作成した結果、「sample」テーブルのカラム「name」に「UK1」という制約名で一意制約(UNIQUE)が作成されました。
スポンサーリンク
一意制約(UNIQUE)の削除
一意制約(UNIQUE制約)は、「ALTER TABLE」で削除できます。
UNIQUE削除の基本構文
ALTER TABLE テーブル名 DROP CONSTRAINT 制約名;
または
ALTER TABLE テーブル名 DROP INDEX 制約名;
一意制約(UNIQUE)の削除例
以下は「ALTER TABLE」を使い「sample」テーブルの「name」に付与されている一意制約(UNIQUE)を削除する例です。
■一意制約(UNIQUE)削除前
> SHOW CREATE TABLE sampledb.sample;
CREATE TABLE `sample` (
`id` int NOT NULL,
`address` varchar(255) DEFAULT NULL,
`age` int DEFAULT NULL,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK1` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
■一意制約(UNIQUE)削除の例
ALTER TABLE sampledb.sample DROP CONSTRAINT UK1;
■一意制約(UNIQUE)削除後
> SHOW CREATE TABLE sample;
CREATE TABLE `sample` (
`id` int NOT NULL,
`address` varchar(255) DEFAULT NULL,
`age` int DEFAULT NULL,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
一意制約(UNIQUE)を削除した結果、「sample」テーブルのカラム「name」に付与されていた「UK1」というUNIQUE制約が削除されました。
helpful
この記事は役に立ちましたか?