2010-04-07 4 views
2

Je veux mettre en œuvre les contraintes suivantes dans une base MySQL:MySQL composite unique sur FK de

create table TypeMapping(
    ... 
    constraint unique(server_id,type_id), 

    constraint foreign key(server_id) references Server(id), 

    constraint foreign key(type_id) references Type(id) 
); 

Cette lance une 'erreur 1062 (23000): entrée en double '3-4' pour la touche 'server_id'' quand je émettre un insert/update qui casserait la contrainte. Ce type de contrainte est-il même possible? Si c'est le cas, comment? Je vous remercie.

Répondre

3

Oui, c'est parfaitement valable. Assurez-vous que vous comprenez que la contrainte unique composite ne se casse que lorsque vous essayez d'insérer une nouvelle ligne dans TypeMapping, où une autre ligne avec le même server_idettype_id existe déjà.

+0

Oui, il ne m'est pas venu à l'esprit que c'est effectivement le comportement attendu. : S – m2o

Questions connexes