SQLで一意制約(UNIQUE)の追加及び削除
2011/01/25 15:44Update
一意制約(UNIQUE)の追加及び削除について学びます。
■ SQLで一意制約(UNIQUE)の追加
■ SQLで一意制約(UNIQUE)の削除
※一意制約(UNIQUE)の削除の場合は DROP UNIQUE ではなく、上記の通り DROP INDEX で削除を行います。
※Oracleの場合の削除方法:DROP INDEX index_name
例えば、次のようなテーブルがあるとします。
◇ HUSBAND(ID, NAME, WIFE_ID)
HUSBANDテーブルの削除について、次の記事をご参照ください。
※SQL入門その6 - テーブルの作成CREATE TABLE文の基本的な使い方
■ 一意制約(UNIQUE)を追加
テーブルHUSBANDのWIFE_IDに一意制約(UNIQUE)を追加します。
■ UNIQUEを削除の場合:
※Oracleの場合の削除方法:DROP INDEX インデックス名
例えば、
テーブルCOUPLE(ID, REGIST_DATE, HUSBAND_ID, WIFE_ID)に一意制約(HUSBAND_ID、WIFE_ID)を追加します。
■ 一意制約(UNIQUE)を追加
■ その制約を削除の場合
※Oracleの場合の削除方法:DROP INDEX インデックス名
ALTER TABLE talbe_name ADD [CONSTRAINT [symbol]] UNIQUE [index_name] (col_name,...)
■ SQLで一意制約(UNIQUE)の削除
ALTER TABLE talbe_name DROP INDEX index_name
※一意制約(UNIQUE)の削除の場合は DROP UNIQUE ではなく、上記の通り DROP INDEX で削除を行います。
※Oracleの場合の削除方法:DROP INDEX index_name
単一の列による一意制約の場合
例えば、次のようなテーブルがあるとします。
◇ HUSBAND(ID, NAME, WIFE_ID)
HUSBANDテーブルの削除について、次の記事をご参照ください。
※SQL入門その6 - テーブルの作成CREATE TABLE文の基本的な使い方

■ 一意制約(UNIQUE)を追加
テーブルHUSBANDのWIFE_IDに一意制約(UNIQUE)を追加します。
ALTER TABLE HUSBAND ADD UNIQUE (WIFE_ID)
■ UNIQUEを削除の場合:
ALTER TABLE HUSBAND DROP INDEX WIFE_ID
※Oracleの場合の削除方法:DROP INDEX インデックス名
複数の列による一意制約の場合
例えば、
テーブルCOUPLE(ID, REGIST_DATE, HUSBAND_ID, WIFE_ID)に一意制約(HUSBAND_ID、WIFE_ID)を追加します。
■ 一意制約(UNIQUE)を追加
ALTER TABLE COUPLE ADD UNIQUE un_hus_wife(HUSBAND_ID, WIFE_ID)
■ その制約を削除の場合
ALTER TABLE COUPLE DROP INDEX un_hus_wife
※Oracleの場合の削除方法:DROP INDEX インデックス名
Sponsored Link
- Relative Articles
- SQL入門その1 - SQLとは - (2007/10/30 10:42)
- SQL入門その2 - データの問い合わせSELECT文の基本的な使い方 - (2007/10/30 12:42)
- SQL入門その3 - データの更新UPDATE文の基本的な使い方 - (2007/11/05 16:07)
- SQL入門その4 - データの削除DELETE文の基本的な使い方 - (2007/11/05 16:28)
- SQL入門その5 - データの登録INSERT文の基本的な使い方 - (2007/11/05 17:21)
- SQL入門その6 - テーブルの作成CREATE TABLE文の基本的な使い方 - (2007/11/06 14:42)
- SQL入門その7 - インデックスの作成CREATE INDEX文の基本的な使い方 - (2007/11/07 16:58)
- SQL入門その8 - データベース制約CONSTRAINT - (2007/11/08 15:27)
- SQL入門その9 - テーブルの変更ALTER TABLE文の基本的な使い方 - (2007/11/20 23:37)
- SQL入門その10 - SELECT DISTINCT文による重複データを取除く - (2008/02/16 15:58)