Syntaxe de LOAD DATA INFILE <<< |
Syntaxe de REPLACE | Syntaxe de SELECT >>> |
14.1 Manipulation de données : SELECT , INSERT , UPDATE , DELETE 14 Syntaxe des commandes SQL Manuel de Référence MySQL 4.1 : Version Française . Syntaxe de DELETE . Syntaxe de DO . Syntaxe de HANDLER . Syntaxe de INSERT . Syntaxe de LOAD DATA INFILE ->Syntaxe de REPLACE . Syntaxe de SELECT . Sous-sélections ( SubSELECT ) . Syntaxe de TRUNCATE . Syntaxe de UPDATE |
14.1.6 Syntaxe de REPLACE
En d'autres termes, vous ne pouvez pas accéder aux valeurs de l'ancienne ligne à partir d'une requête REPLACE . Dans quelques vieilles versions de MySQL, il apparaît que c'était possible, mais c'etait un dysfonctionnement qui a été corrigé depuis. Pour utiliser REPLACE vous devez avoir les privilèges INSERT et DELETE sur la table.Quand vous utilisez une commande REPLACE , mysql_affected_rows() retournera 2 si une nouvelle ligne en remplace une existante, et cela parce qu'il y aura eu une insertion puis une suppression. Cela aide à savoir si REPLACE a ajouté ou a remplacé une ligne : Testez si le nombre de lignes affectées est égal à 1 (ajout) ou s'il est égal à 2 (remplacement).Notez que si vous n'utilisez pas un index UNIQUE ou une PRIMARY KEY , utiliser un REPLACE n'a pas de sens vu que cela revient à utiliser un INSERT . Il devient équivalent à INSERT , car il n'y a pas d'index à utiliser pour déterminer si un nouvelle ligne est un double d'une autre. Voici quelques détails sur l'algorithme utilisé : Il est aussi utilisé par LOAD DATA ... REPLACE .
|
<< | Syntaxe de REPLACE | >> |
Syntaxe de LOAD DATA INFILE | Manipulation de données : SELECT , INSERT , UPDATE , DELETE | Syntaxe de SELECT |