| Syntaxe de UPDATE <<< |
Syntaxe de DELETE | Syntaxe de TRUNCATE >>> |
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.6 Syntaxe de DELETE
Si vous exécutez un DELETE sans clause WHERE , tous les enregistrements sont effacés. Si vous le faites en mode AUTOCOMMIT cela aura le même effet qu'un TRUNCATE . Syntaxe des TRUNCATE . Avec MySQL 3.23, DELETE sans clause WHERE retournera zéro comme nombre d'enregistrements affectés. Si vous voulez vraiment savoir combien d'enregistrements ont été effacés quand vous videz une table, et que vous êtes prêts à souffrir d'un léger ralentissement, vous pouvez utiliser une requête DELETE de ce genre :
Si vous spécifiez le mot QUICK , le handler de la table will not merge index leaves during delete, which may speed up certain kind of deletes. Dans les tables de type MyISAM , les enregistrements effacés sont maintenus dans une liste liée et les requêtes INSERT suivantes réutilisent les vieux emplacements. Pour recouvrir l'espace inutilisé ou réduire la taille des fichiers, utilisez la commande OPTIMIZE TABLE ou l'utilitaire myisamchk pour réorganiser les tables. OPTIMIZE TABLE est plus simple, mais myisamchk est plus rapide. Voyez Syntaxe de OPTIMIZE TABLE et Optimisation de table .La première suppression multi-tables est supportée à partir de MySQL 4.0.0. La première suppression multi-tables est supportée à partir de MySQL 4.0.2. L'idée est que seul les lignes concordante dans les tables énumérées avant le FROM ou avant la clause USING sont effacés. Le but est de pouvoir effacer des lignes de plusieurs tables en même temps tout en ayant d'autres tables pour les recherches.Le code .* après les noms de tables n'est présent que pour assurer la compatibilité avec Access :
ORDER BY et l'utilisation de plusieurs tables dans une requête DELETE est supporté en MySQL 4.0. Si une clause ORDER BY est utilisée, les enregistrements seront effacés dans cet ordre. Ceci n'est vraiment intéressant qu'en conjonction avec LIMIT . Par exemple:
|
| << | Syntaxe de DELETE | >> |
| Syntaxe de UPDATE | Manipulation de données : SELECT , INSERT , UPDATE , DELETE | Syntaxe de TRUNCATE |