Rumah >pangkalan data >Oracle >Bagaimana untuk memadamkan kekangan unik dalam oracle

Bagaimana untuk memadamkan kekangan unik dalam oracle

青灯夜游
青灯夜游asal
2022-03-16 16:24:519731semak imbas

Dalam Oracle, anda boleh menggunakan pernyataan "ALTER TABLE" dan kata kunci "DROP CONSTRAINT" untuk memadamkan kekangan unik Sintaksnya ialah "ALTER TABLE nama jadual data DROP CONSTRAINT nama kekangan unik;".

Bagaimana untuk memadamkan kekangan unik dalam oracle

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.

Kekangan unik Oracle

Kekangan unik bermakna nilai medan tidak boleh diulang dalam semua rekod.

Kekangan unik ialah kekangan integriti yang memastikan data yang disimpan dalam lajur atau set lajur adalah unik merentas baris dalam jadual.

Biasanya, apabila mencipta jadual menggunakan sintaks kekangan sebaris, kekangan unik digunakan pada lajur seperti berikut:

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

Kekangan unik ini menentukan bahawa nilai dalam column_name digunakan sepanjang Ia adalah satu-satunya dalam jadual.

Anda boleh menentukan nama kekangan yang unik dengan menggunakan klausa CONSTRAINT dan nama kekangan:

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

Dan jika anda mahu memadamkan kekangan unik:

ALTER TABLE 数据表名
DROP CONSTRAINT 唯一约束名;

Contoh:

Buat jadual bernama 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)
);

lajur mempunyai kekangan unik untuk memastikan tiada e-mel pendua. email

Pernyataan berikut menyisipkan baris dalam jadual

: clients

INSERT INTO clients(first_name,last_name, email, company_name, phone)
VALUES('Christene','Snider','we.chen@oraok.com', 'ABC Inc', '408-875-6075');
Sekarang, kami cuba memasukkan baris baharu dalam lajur

di mana nilai e-mel sudah wujud: 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 mengeluarkan mesej ralat berikut yang menunjukkan pelanggaran kekangan unik:

SQL Error: ORA-00001: unique constraint (OT.SYS_C0010726) violated
Jika anda ingin menambah kekangan unik untuk dua lajur:

dan company_name, anda boleh menggunakanphone Pernyataan berikut: ALTER TABLE

ALTER TABLE clients
ADD CONSTRAINT unique_company_phone UNIQUE(company_name, phone);
Akibatnya, gabungan nilai dalam lajur

dan company_name adalah unik antara baris dalam jadual phone . clients

Untuk memadamkan kekangan unik , sila gunakan pernyataan berikut: UNIQUE_COMPANY_PHONE

ALTER TABLE clients
DROP CONSTRAINT unique_company_phone;
Tutorial yang disyorkan: "

Tutorial Oracle "

Atas ialah kandungan terperinci Bagaimana untuk memadamkan kekangan unik dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn