Bonsoir,
J'ai un petit souci dans la création de ma requête pour ma base de données.
Jusqu'à maintenant, quand je voulais insérer une nouvelle note, je partais du constat que celle-ci existait déjà à la base, et je faisais donc un simple update :
Et voici la modélisation de la table qui s'y rapporte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE note SET note= :note WHERE mid = :matiere AND eid = :etudiant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6NOTE ---------- note *eid *mid
Et ça fonctionnait plutôt bien. Le problème, c'est que je n'ai pas envie qu'un élève soit forcé à sa création de posséder une note dans chaque matière. Et à vrai dire, ça complique pas mal le problème. Donc à la place, je me suis dit que j'allais utiliser la propriété ON DUPLICATE KEY.
Problème :
... c'est que ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 INSERT INTO note VALUES (note, mid, eid) VALUES (:note,:matiere,:etudiant) ON DUPLICATE KEY UPDATE note=:note
Et alors, je ne sais pas trop où est le problème, sachant cependant qu'il s'agit ici d'une BD MySQL avec comme moteur INNO DB, et que par conséquent ici la clef primaire est en fait constituée de deux clefs étrangères, à savoir matière et étudiant.
Est-ce que quelqu'un pourrait m'aiguiller sur la bonne voie s'il-vous-plaît ?
Partager