web-dev-qa-db-fra.com

Création d'une contrainte UNIQUE sur plusieurs colonnes dans le diagramme EER de MySQL Workbench

Dans le diagramme EER de MySQL Workbench, il y a une case à cocher pour rendre chaque colonne d'une table unique, non nulle, clé primaire, etc.

Cependant, je voudrais avoir une contrainte UNIQUE sur plusieurs colonnes. Est-il possible de l'ajouter dans le diagramme EER de MySQL Workbench?

EDIT: Ok, j'ai réalisé la case à cocher unique, crée un INDEX UNIQUE, et non une CONTRAINTE UNIQUE

39
zhenming

Dans la boîte de dialogue Modifier la table de MySQL Workbench:

  • Accédez à l'onglet Index.
  • Double-cliquez sur une ligne vierge pour créer un nouvel index.
  • Choisissez 'UNIQUE' comme type d'index.
  • Cochez les colonnes que vous souhaitez rendre uniques ensemble.

Il y a discussion pour savoir si c'est bizarre, car un index n'est pas la même chose qu'une contrainte. Je n'aurais certainement pas pensé y regarder. Cependant, apparemment, l '"index unique" impose l'unicité de la même manière qu'une contrainte unique et peut améliorer les performances. Par exemple, si j'essaie d'insérer une ligne qui se briserait ensemble après avoir utilisé cette méthode, elle génère une erreur "1062 Duplicate entry".

105
Alex

Avec le dernier MWB (je suis sur 6.0.8), il est possible de créer des clés composites

Si vous souhaitez créer une clé primaire composite, vous pouvez sélectionner plusieurs colonnes et cocher la case PK. Cependant, une étape supplémentaire est requise, vous devez cliquer sur l'onglet Index, puis dans le panneau Colonnes d'index, vous devez définir l'ordre souhaité des clés primaires.

2
GeorgioA

il ne semble pas être disponible: http://bugs.mysql.com/bug.php?id=48468 . il semble que vous pouvez créer un index unique multi-colonnes sur l'onglet index mais pour une contrainte unique multi-colonnes, vous devez exécuter la commande de création manuellement.

2
user890904