Maison  >  Article  >  base de données  >  Comment supprimer une contrainte unique dans Oracle

Comment supprimer une contrainte unique dans Oracle

青灯夜游
青灯夜游original
2022-03-16 16:24:519689parcourir

Dans Oracle, vous pouvez utiliser l'instruction "ALTER TABLE" et le mot-clé "DROP CONSTRAINT" pour supprimer une contrainte unique. La syntaxe est "ALTER TABLE nom de la table de données DROP CONSTRAINT nom de contrainte unique ;".

Comment supprimer une contrainte unique dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Oracle Unique Constraint

Unique Constraint signifie que la valeur d'un champ ne peut pas apparaître de manière répétée dans tous les enregistrements.

Une contrainte unique est une contrainte d'intégrité qui garantit que les données stockées dans une colonne ou un ensemble de colonnes sont uniques sur toutes les lignes d'une table.

Normalement, lors de la création d'une table à l'aide de la syntaxe de contrainte en ligne, une contrainte unique est appliquée à une colonne comme suit :

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

Cette contrainte unique spécifie que la valeur dans column_name est unique dans la table. 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_PHONEVous pouvez spécifier un nom de contrainte unique en utilisant la clause CONSTRAINT et le nom de la contrainte :

ALTER TABLE clients
DROP CONSTRAINT unique_company_phone;

Et si vous souhaitez supprimer une contrainte unique :

rrreee🎜🎜🎜Exemple : 🎜🎜
🎜🎜Créer Une table nommée clients :
🎜rrreee🎜La colonne email a une contrainte unique pour garantir qu'il n'y a pas d'e-mails en double. 🎜🎜L'instruction suivante insère une ligne dans la table clients : 🎜rrreee🎜Maintenant, nous essayons d'insérer une nouvelle ligne dans la colonne email où la valeur email existe déjà : 🎜rrreee🎜 Oracle émet le message d'erreur suivant indiquant une violation de contrainte unique : 🎜rrreee🎜 Si vous souhaitez ajouter une contrainte unique pour deux colonnes : nom_entreprise et téléphone, vous pouvez utilisez l'instruction ALTER TABLE suivante : 🎜rrreee🎜En conséquence, la combinaison des valeurs dans les colonnes company_name et phone dans les lignes dans la table clients se trouve Le seul. 🎜🎜🎜Pour supprimer la contrainte unique UNIQUE_COMPANY_PHONE, veuillez utiliser la déclaration suivante : 🎜🎜rrreee🎜Tutoriel recommandé : "🎜Tutoriel Oracle🎜"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn