Bonjour,
Je pense que tout est dans le titre.
Merci.
Bonjour,
Je pense que tout est dans le titre.
Merci.
Si vous tentez d'insérer une ligne dont les valeurs pour un index UNIQUE ou une PRIMARY KEY existent déjà, avec REPLACE l'ancienne sera effacée et la nouvelle insérée, tandis qu'INSERT vous remontera une erreur.
J'imagine que la vérification que fait REPLACE a un coût, mais comme les deux ne font pas la même chose, s'il y a un choix à faire entre REPLACE et INSERT, il dépendra plutôt du besoin.
C'est ce que je me suis dit aussi, REPLACE vérifie l'existence d'enregistrements, auquel cas, elle supprime et insert à nouveau pour le mettre à jour. En gros, si un enregistrement existe déjà elle va le mettre à jour en effectuant les opérations DELETE et INSERT.
et comme tu l'as précisé ceci a peu être un coût!
Toutefois REPLACE n'est pas normalisé...
En SQL courant :
(Pour bien mettre en évidence les constantes, je les ai noté comme des chaînes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 UPDATE matable SET colonne1 = 'valeur1' , ... WHERE col_id = 'val_id' ; INSERT INTO matable ( col_id , colonne1 , ... ) SELECT 'val_id' , 'valeur1' , ... FROM DUAL // ou toute table contenant une ligne et une seule WHERE NOT EXISTS ( SELECT 1 FROM matable WHERE col_id = 'val_id' ) ;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager