首頁  >  文章  >  資料庫  >  oracle怎麼刪除唯一約束

oracle怎麼刪除唯一約束

青灯夜游
青灯夜游原創
2022-03-16 16:24:519475瀏覽

在oracle中,可以使用「ALTER TABLE」語句和「DROP CONSTRAINT」關鍵字來刪除唯一約束,語法為「ALTER TABLE 資料表名 DROP CONSTRAINT 唯一約束名稱;」。

oracle怎麼刪除唯一約束

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

Oracle唯一約束

#唯一約束是指所有記錄中欄位的值不能重複出現。

一個唯一的約束是一個完整性約束,它確保儲存在一列或一組列中的資料在表中的行之間是唯一的。

通常,在使用內聯約束語法建立表時,將唯一約束套用至列,如下所示:

CREATE TABLE table_name (
    ...
    column_name data_type UNIQUE
    ...
);

此唯一約束指定column_name中的值在整個表中是唯一的。

可以透過使用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

如果要為兩個欄位:

company_name#phone新增唯一的約束,可以使用以下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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn