Mysql : Valeurs uniques pour une colonne donnée - SQL/NoSQL - Programmation
Marsh Posté le 07-10-2005 à 11:27:38
je dois etre con parceque j ai pas compris la question(enfin j'espere)
Marsh Posté le 07-10-2005 à 11:40:52
non, je me suis surement mal exprimé :
est-ce possible de régler mon problème directement en SQL ou je dois gérer le cas part le programme qui fera les requêtes sur la base ? Le but ce serait que la base vérifie que les valeurs introduites soient correcte pour éviter de le faire pour chaque programme utilisant cette base.
Marsh Posté le 07-10-2005 à 12:07:38
ReplyMarsh Posté le 07-10-2005 à 12:11:49
Beegee a écrit : Tu crées un index unique sur table2_id, table3_id, non ? |
alors en fait j avais bien compris la question , qui est de ce fait totalement abusee
Marsh Posté le 07-10-2005 à 12:14:25
ah, je connais pas encore ça. Je vais jeter un coup d'oeil sur ces indexes uniques. Merci bien.
Marsh Posté le 07-10-2005 à 14:04:05
non ! c'est pas comme ça.
si je mets sur table2_id, table3_id, je peux mettre 2 positions identiques. Si je rajoute position en primary key, ça ne marche pas non plus. En gros :
id et table2_id sont multiples, table3_id et position sont unique mais UNIQUEMENT pour un table2_id donné !
Marsh Posté le 07-10-2005 à 14:52:48
C'est pas clair ton histoire
Dis clairement quelles sont les contraintes d'unicité, en terme de couples / trios, et tu verras les index uniques à créer.
D'après ce que tu dis, il semblerait qu'il te faille un index sur les 3 ...
Marsh Posté le 07-10-2005 à 19:16:03
voilà, j'ai la soluce. Si qqch cherche une fois, voilà un exemple :
CREATE UNIQUE INDEX idx1 ON table (table2_id, table3_id)
CREATE UNIQUE INDEX idx2 ON table (table2_id, position)
Marsh Posté le 07-10-2005 à 19:33:52
C'est pour ça que ta phrase "table3_id et position sont unique mais UNIQUEMENT pour un table2_id donné !" porte à confusion, car je pensais que tu voulais dire que le couple (table3_id, position) doit être unique pour un table2_id donné
La plupart des problèmes SQL sont résolus ... quand on énonce clairement le problème
Marsh Posté le 08-10-2005 à 12:00:01
Beegee a écrit : |
oui, dans mon cas, j'avais de la difficulté à former ma question !
Un grand merci pour tous
Marsh Posté le 07-10-2005 à 11:25:00
Hello
J'ai une table comportant :
id
table2_id
table3_id
position
pour chaque table2_id, je veux des valeurs unique de table3_id et position. Du genre à ne pas avoir des lignes du genre :
(id, table2_id, table3_id, position) (x, 3, 2, 2) et (y, 3, 2, 2) ou (y, 3, 1, 2).
En gros, je veux avoir des table3_id et position uniques pour chaque table2_id.
C'est possible de vérifier cela directement par mysql au lieu de faire cela par programmation ?
Merci pour votre aide ! Soyez indulgent, je débute