IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

On Duplicate key


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 34
    Par défaut On Duplicate key
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE note SET note= :note WHERE mid = :matiere AND eid = :etudiant
    Et voici la modélisation de la table qui s'y rapporte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      NOTE   
    ----------    
      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 :
    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
    ... c'est que ça ne fonctionne pas.
    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 ?

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Retire le premier VALUES.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO note (note, mid, eid) 
    VALUES (:note,:matiere,:etudiant) 
    ON DUPLICATE KEY UPDATE note=:note
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 34
    Par défaut
    Merci, c'était bien ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] erreur 1061 duplicate key name
    Par porco dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/01/2007, 12h52
  2. on duplicate key avec un select au lieu d'update ?
    Par pony dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/10/2006, 15h05
  3. Erreur Duplicate key name
    Par snipes dans le forum Requêtes
    Réponses: 15
    Dernier message: 13/04/2006, 15h55
  4. [SQL SERVER duplicate key]
    Par snetechen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/01/2006, 10h20
  5. INSERT ... ON DUPLICATE KEY UPDATE
    Par luffy san dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/10/2005, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo