Oracleで一意制約を削除する方法

青灯夜游
リリース: 2022-03-16 16:24:51
オリジナル
9691 人が閲覧しました

Oracle では、「ALTER TABLE」ステートメントと「DROP CONSTRAINT」キーワードを使用して一意制約を削除できます。構文は「ALTER TABLE データ テーブル名 DROP CONSTRAINT 一意制約名;」です。

Oracleで一意制約を削除する方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

#Oracle の一意制約

一意制約 は、すべてのレコードのフィールドの値が繰り返し出現できないことを意味します。

一意制約は、列または列のセットに格納されているデータがテーブル内の行間で一意であることを保証する整合性制約です。

通常、インライン制約構文を使用してテーブルを作成する場合、次のように一意制約が列に適用されます。

CREATE TABLE table_name (
    ...
    column_name data_type UNIQUE
    ...
);
ログイン後にコピー

この一意制約は、

column_name Unique の値を指定します。テーブル全体で。

CONSTRAINT 句と制約名を使用して、一意の制約名を指定できます:

CREATE TABLE table_name (
    ...
    column_name data_type CONSTRAINT unique_constraint_name UNIQUE
    ...
);
ログイン後にコピー

一意の制約を削除する場合:

ALTER TABLE 数据表名
DROP CONSTRAINT 唯一约束名;
ログイン後にコピー

例:

clients という名前のテーブルを作成します:

CREATE TABLE clients (
    client_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(50) NOT NULL,
    last_name VARCHAR2(50) NOT NULL,
    company_name VARCHAR2(255) NOT NULL,
    email VARCHAR2(255) NOT NULL UNIQUE,
    phone VARCHAR(25)
);
ログイン後にコピー

email 列には、メールが重複しないようにするための一意の制約があります。

次のステートメントは、

clients テーブルに行を挿入します。

INSERT INTO clients(first_name,last_name, email, company_name, phone)
VALUES('Christene','Snider','we.chen@oraok.com', 'ABC Inc', '408-875-6075');
ログイン後にコピー

次に、メールの値を

email 列に挿入しようとします。すでに存在します 新しい行:

INSERT INTO clients(first_name,last_name, email, company_name, phone)
VALUES('Sherly','Snider','we.chen@oraok.com', 'ABC Inc', '408-875-6076');
ログイン後にコピー

Oracle は、一意性制約違反を示す次のエラー メッセージを発行します:

SQL Error: ORA-00001: unique constraint (OT.SYS_C0010726) violated
ログイン後にコピー

2 つの列が必要な場合:

company_namephone一意の制約を追加するには、次の ALTER TABLE ステートメントを使用できます:

ALTER TABLE clients
ADD CONSTRAINT unique_company_phone UNIQUE(company_name, phone);
ログイン後にコピー

結果として、

company_namephone 列は clients であり、テーブル内の行間で一意です。

一意制約 UNIQUE_COMPANY_PHONE を削除するには、次のステートメントを使用してください:

ALTER TABLE clients
DROP CONSTRAINT unique_company_phone;
ログイン後にコピー

推奨チュートリアル: 「

Oracle チュートリアル 」 「###

以上がOracleで一意制約を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート