Maison >base de données >tutoriel mysql >Pourquoi MySQL (5.x) ne prend-il pas en charge les expressions de table communes (clause AVEC) ?
MySQL 5.x et la clause WITH manquante
Les versions 5.x de MySQL ne prennent pas en charge la clause WITH
, une fonctionnalité standard SQL-99 permettant de définir des expressions de table communes (CTE). Les CTE sont des ensembles de résultats nommés temporaires utilisés dans une seule requête.
Cette omission contraste avec d'autres systèmes de bases de données majeurs comme Oracle, SQL Server, PostgreSQL et Firebird, qui incluent tous la prise en charge CTE. Les demandes pour cette fonctionnalité existent depuis au moins 2006, mais restent non implémentées dans MySQL 5.x.
Solutions de contournement pour MySQL 5.x
Sans la clause WITH
, les utilisateurs de MySQL 5.x doivent utiliser des méthodes alternatives pour reproduire le comportement CTE :
La promesse de MySQL 8.0
MySQL 8.0 devrait introduire la prise en charge des CTE, y compris les CTE récursifs. Cette amélioration significative améliorera l'adhésion de MySQL aux normes SQL-99 et débloquera les avantages de cette fonctionnalité précieuse.
Jusqu'à ce que MySQL 8.0 soit largement disponible, les solutions de contournement répertoriées ci-dessus restent les solutions pratiques pour gérer les requêtes qui utiliseraient normalement les CTE.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!