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;“.
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_name
和phone
添加唯一的约束,可以使用以下ALTER TABLE
语句:
ALTER TABLE clients ADD CONSTRAINT unique_company_phone UNIQUE(company_name, phone);
结果,company_name
和phone
列中值的组合在clients
表中的行中是唯一的。
要删除唯一约束UNIQUE_COMPANY_PHONE
Sie 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: 🎜🎜clients
: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!