Souvent on part dans des lignes de codes dans n'importe quel langage pour dire :
si la valeur existe dans la table sql
alors on réalise une lise à jour (update) de la table
sinon on insert une nouvelle ligne dans la table !!!
Alors que tout est réalisable dans la même requête (si je vous dis que si)
Création de contrainte unique dans une table sql
Pour cela vous avez créé dans votre table des valeurs uniques pour une ou des colonnes
Pour plusieurs colonnes uniques il suffit de remplacer VOTRE_COLONNE par COLONNE1, COLONNE2, COLONNE3
ALTER TABLE NOM_TABLE ADD CONSTRAINT VOTRE_NOM_DE_CONTRAINTE UNIQUE (VOTRE_COLONNE)
sql insert et update tout en un
Il suffit de faire votre requête INSERT INTO TABLE COLONNE1, COLONNE5, COLONNE8 VALUES (valeurs1, valeurs5, valeurs8)
Et d'y ajouter bien sur ON DUPLICATE KEY UPDATE COLONNE5 = valeurs5, COLONNE8 = valeurs8.
Petites astuces sur le ON DUPLICATE KEY SQL
Vous pouvez vous servir d'une colonne comme nombre pour savoir combien de fois la colonne fût "updatée" :)
ON DUPLICATE KEY UPDATE COLONNE_COMPTAGE = COLONNE_COMPTAGE + 1