Heim  >  Artikel  >  Datenbank  >  So löschen Sie eine eindeutige Einschränkung in Oracle

So löschen Sie eine eindeutige Einschränkung in Oracle

青灯夜游
青灯夜游Original
2022-03-16 16:24:519676Durchsuche

In Oracle können Sie die Anweisung „ALTER TABLE“ und das Schlüsselwort „DROP CONSTRAINT“ verwenden, um eine eindeutige Einschränkung zu löschen. Die Syntax lautet „ALTER TABLE Datentabellenname DROP CONSTRAINT eindeutiger Einschränkungsname;“.

So löschen Sie eine eindeutige Einschränkung in Oracle

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.

Oracle Unique Constraint

Unique Constraint bedeutet, dass der Wert eines Feldes nicht wiederholt in allen Datensätzen vorkommen kann.

Eine eindeutige Einschränkung ist eine Integritätsbeschränkung, die sicherstellt, dass in einer Spalte oder einem Satz von Spalten gespeicherte Daten in allen Zeilen einer Tabelle eindeutig sind.

Normalerweise wird beim Erstellen einer Tabelle mithilfe der Inline-Einschränkungssyntax eine eindeutige Einschränkung wie folgt auf eine Spalte angewendet:

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

Diese eindeutige Einschränkung gibt an, dass der Wert in column_name in der gesamten Tabelle eindeutig ist. 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_namephone添加唯一的约束,可以使用以下ALTER TABLE语句:

ALTER TABLE clients
ADD CONSTRAINT unique_company_phone UNIQUE(company_name, phone);

结果,company_namephone列中值的组合在clients表中的行中是唯一的。

要删除唯一约束UNIQUE_COMPANY_PHONESie können einen eindeutigen Einschränkungsnamen angeben, indem Sie die CONSTRAINT-Klausel und den Einschränkungsnamen verwenden:

ALTER TABLE clients
DROP CONSTRAINT unique_company_phone;

Und wenn Sie eine eindeutige Einschränkung löschen möchten:

rrreee🎜🎜🎜Beispiel: 🎜🎜
🎜🎜Erstellen Eine Tabelle mit dem Namen clients:
🎜rrreee🎜Die Spalte email hat eine eindeutige Einschränkung, um sicherzustellen, dass keine doppelten E-Mails vorhanden sind. 🎜🎜Die folgende Anweisung fügt eine Zeile in die Tabelle clients ein: 🎜rrreee🎜Jetzt versuchen wir, eine neue Zeile in die Spalte email einzufügen, in der der E-Mail-Wert bereits vorhanden ist: 🎜rrreee🎜 Oracle gibt die folgende Fehlermeldung aus, die auf einen Verstoß gegen die eindeutige Einschränkung hinweist: 🎜rrreee🎜 Wenn Sie eine eindeutige Einschränkung für zwei Spalten hinzufügen möchten: company_name und phone, können Sie dies tun Verwenden Sie die folgende ALTER TABLE-Anweisung: 🎜rrreee🎜Als Ergebnis die Kombination der Werte in den Spalten company_name und phone in den Zeilen in der Tabelle clients ist der einzige. 🎜🎜🎜Um die eindeutige Einschränkung UNIQUE_COMPANY_PHONE zu löschen, verwenden Sie bitte die folgende Anweisung: 🎜🎜rrreee🎜Empfohlenes Tutorial: „🎜Oracle Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonSo löschen Sie eine eindeutige Einschränkung in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn