Faire un update si le insert est impossible en sql

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

Faire un update si le insert est impossible en sql
Note 5 sur 5 Pour 3 votes