Maison > Article > base de données > Comment supprimer une contrainte unique dans Oracle
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 ;".
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_name
和phone
添加唯一的约束,可以使用以下ALTER TABLE
语句:
ALTER TABLE clients ADD CONSTRAINT unique_company_phone UNIQUE(company_name, phone);
结果,company_name
和phone
列中值的组合在clients
表中的行中是唯一的。
要删除唯一约束UNIQUE_COMPANY_PHONE
Vous 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 : 🎜🎜clients
: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!