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 que les codes à barres uniques doivent être enetered avec le même companyID .... alors comment faire cela dans mysql?

NB: je peux entrer plusieurs company_id dans le tableau

Madhur bhaiya

Vous devez ajouter une contrainte UNIQUE composite sur COMPANY_IDet BARCODE, à votre table. Cela signifie essentiellement qu'il n'autorisera pas les lignes ayant une combinaison de valeurs en double , pour lesdits deux champs. Il peut toujours autoriser des valeurs en double individuellement pour l'un ou l'autre.

Exemple: la (1, 'abc')combinaison ne pourra pas exister sur plus d'une ligne. Cependant, (1, 'abc'), (1, 'def')peut exister. Il permet donc de dupliquer les valeurs individuellement ( Company_iddans cet exemple)

Procédez comme suit (modifiez le (s) nom (s) de table et de colonne en conséquence):

ALTER TABLE your_table_name 
ADD CONSTRAINT unique_barcode_company UNIQUE (COMPANY_ID, BARCODE)

Articles connexes


Plusieurs contraintes uniques dans JPA

Jacob : Existe-t-il un moyen de spécifier à l'aide de JPA qu'il doit y avoir plusieurs contraintes uniques sur différents ensembles de colonnes? @Entity @Table(name="person", uniqueConstraints=@UniqueConstraint(columnNames={"code", "uid"})) public clas