2011-06-21 5 views
0

Je n'ai pas beaucoup d'expérience avec MySQL ou SQL en général, et je ne veux pas y plonger trop profondément. Mais je veux juste demander ceci:Dependend Constraint in MySQL

J'ai deux colonnes, comme ceci:

CREATE TABLE foo(parent INT(11) unsigned NOT NULL, ordering INT); 

Je veux juste une contrainte qui fait en sorte que si la clé parent est le même, le ordering doit être différent . Ou en maths:

For all f1,f2 in foo: parent(f1) = parent(f2) => ordering(f1) =/= ordering(f2) 

Comment puis-je exprimer cela en MySQL?

+2

Si vous ne voulez pas plonger dans trop profondément, il faudrait supposer que vous ne se soucient pas de comprendre un réponse fournie ici. Alors, pourquoi devrions-nous nous soucier de fournir une réponse? –

+0

Hm, je suis d'accord. C'est juste que je n'aime pas toucher le SQL directement, c'est pourquoi j'ai dit que je ne voulais pas m'y intéresser trop profondément. – Lanbo

Répondre

0

Je suppose que =/= signifie « Different » (ce qui serait != ou <> dans la terminologie SQL).

Un index unique sur (parent, commande) doit faire:

CREATE UNIQUE INDEX idx_order_unique ON foo (parent, ordering); 
+0

C'est aussi simple que ça? Merci beaucoup! – Lanbo