Je voudrais créer une seule et même requête capable de faire soit un insert si l'enregistrement n'existe pas, soit faire un update s'il existe déjà.
J'ai créé un index sur l'ensemble des Champ_2, Champ_3 et Champ_4.
(J'ai en plus une clef primaire "id" en autoincrement je ne sais pas si ça peut gêner?)
C'est surtout la syntaxe de INSERT INTO que tu dois revoir on dirait...
Tiens c'est bizarre il me semble bien avoir déjà mis en place cette syntaxe qui pour moi est la plus lisible.
Enfin bref j'ai effectué la correction tel que dans ton message mais l'erreur est la même...
Pour info:
-L'index qui prend les champs: Champ_2, Champ_3 et Champ_4 s'appelle IndexU cela ne doit pas apparaitre quelque-part? Il est de type "BTREE" et est "unique"
-La clef primaire 'id' s'appelle visiblement "PRIMARY" et est également "unique" (+autoincrement)
-J'ai d'autres champs que je ne souhaite pas compléter par cette requête.
Arf quand j'ai modifié ma requête pour faire l'insert de ta façon j'ai oublié un champ!!! Maintenant ça marche merci!
Mais pourquoi l'autre façon de faire l'insert ne fonctionne pas dans ce cas précis?
(Bon je sais bien que tu déconseille cette méthode dans ton tuto mais la lisibilité est pour moi un paramètre essentiel...)
[SQL] ON DUPLICATE KEY
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !