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 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 clef LOW_PRIORITY , l'exécution du DELETE sera repoussée jusqu'à ce qu'aucun client ne lise plus de la table. Si vous spécifiez le mot QUICK , le gestionnaire de la table ne fusionnera pas les blancs dans les index durant la suppréssion, ce qui peut accélérer certain types de suppressions.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 . Le premier format de suppression multi-tables est supporté à partir de MySQL 4.0.0. Le second format de suppression multi-tables est supporté à 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 :
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:
L'option LIMIT lignes spécifique à MySQL pour DELETE donne au serveur le nombre maximal de lignes à être effacé avant que le contrôle ne revienne au client. Cela peut être utilisé pour s'assurer qu'une commande DELETE spécifique ne prenne pas trop de temps. Vous pouvez répéter la commande jusqu'à ce que le nombre de lignes affectées soit inférieur à la valeur passée à l'option LIMIT . |
<< | Syntaxe de DELETE | >> |
Syntaxe de UPDATE | Manipulation de données : SELECT , INSERT , UPDATE , DELETE | Syntaxe de TRUNCATE |