Créer des contraintes uniques conditionnelles sur plusieurs colonnes


samg

Je dois créer une contrainte unique conditionnelle sur plusieurs colonnes à l'aide d'Oracle, mais je ne le fais pas.

Ci-dessous ce que j'ai en ce moment mais cela ne fonctionne pas:

Fondamentalement, ma contrainte unique conditionnelle doit gérer une combinaison de colonnes sous une condition qui a = 1.

alter table <table_name> add constraint <constraint_name> unique (<column_1>, <column_2>, a = 1);

J'obtiens cette erreur lorsque j'exécute cette instruction alter :

ORA-00907: missing right parenthesis

samg

Je pense que c'est suffisant :

create unique index <index_name> on <table_name> (case when a = 1 then <column_1> end, 
                                                  case when a = 1 then <column_2> end); 

Articles connexes


Comment créer des contraintes uniques sur AgensGraph

jagger Je veux utiliser la propriété "id" comme clé primaire sur l'étiquette. agens=# create vlabel v; CREATE VLABEL agens=# create (:v{id:1}); GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0) agens=# create (:v{id:1}); GRAPH WRITE (INSERT VERTEX 1, INSERT EDGE 0)

Mysql - créer des contraintes uniques sur les deux champs

yoann84 J'utilise mysql (mariadb). J'ai une table "events_ratings", qui contient 4 colonnes CREATE TABLE `event_ratings` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_event` int(11) NOT NULL, `rating` int(1) NOT NULL, `id_user` char(36) CHARACTER SET utf

contraintes uniques pour plusieurs colonnes dans mysql

Prénom nom de famille Les gars j'ai cette table dans DB ------------------------------------------------------------- ID | COMPANY_ID | NAME | DESCRIPTION | BARCODE ------------------------------------------------------------- Je veux faire une contrainte qu