6.4 Manipulation de données : SELECT , INSERT , UPDATE , DELETE
6 Référence du langage MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Syntaxe de SELECT . Syntaxe de HANDLER . Syntaxe de INSERT . Syntaxe de INSERT DELAYED ->Syntaxe de UPDATE . Syntaxe de DELETE . Syntaxe de TRUNCATE . Syntaxe de REPLACE . Syntaxe de LOAD DATA INFILE . Syntaxe de DO
|
6.4.5 Syntaxe de UPDATE
UPDATE [LOW_PRIORITY] [IGNORE] nom_de_table SET nom_colonne1=expr1 [, nom_colonne2=expr2, ...] [WHERE where_definition] [ORDER BY ...] [LIMIT #]
|
UPDATE
met à jour des enregistrements dans une tables avec de nouvelles valeurs.
La clause
SET
indique les colonnes à modifier et les valeurs à leur donner.
La clause
WHERE
, si fournie, spécifie les enregistrements à mettre à jour.
Sinon, tous les enregistrements sont mis à jour.
Si la clause
ORDER BY
est fournie, les enregistrements seront mis à jour
dans l'ordre spécifié.
Si vous spécifiez le mot clef
LOW_PRIORITY
, l'exécution de l'
UPDATE
sera repoussé jusqu'à ce que aucun client ne lise plus de la table.
Si vous spécifiez le mot clef
IGNORE
, la mise à jour ne s'interrompra pas
même si on rencontre des problèmes d'unicité de clefs durant l'opération.
Les enregistrements posant problèmes ne seront pas mis à jour.
Si vous accédez à une colonne d'une table dans une expression,
UPDATE
utilisera la valeur courante de la colonne. Par exemple, la requête
suivante ajoute une année à l'âge actuel de tout le monde :
mysql> UPDATE persondata SET age=age+1;
|
Les requêtes
UPDATE
sont évaluées de gauche à droite. Par exemple, la requête
suivante double la valeur de la colonnes âge, puis l'incrémente :
mysql> UPDATE persondata SET age=age*2, age=age+1;
|
Si vous changez la valeur d'une colonne en lui spécifiant sa valeur actuelle,
MySQL s'en aperçoit et ne fait pas la mise à jour.
UPDATE
retourne le nombre d'enregistrements ayant changé.
Depuis la version 3.22 de MySQL, la fonction
mysql_info()
de l'API C
retourne le nombre de colonnes qui correspondaient, le nombre de colonnes
mises à jour et le nombre d'erreurs générées pendant l'
UPDATE
.
Dans la version 3.23 de MySQL, vous pouvez utilisez le code
LIMIT #
pour vous assurer
que seul un nombre d'enregistrements bien précis est changé.
A partir de la version 4.0.4 de MySQL, vous pouvez aussi effectuer un
UPDATE
qui se base sur plusieurs tables :
UPDATE items,month SET items.price=month.price WHERE items.id=month.id;
|
|