ホームページ >データベース >mysql チュートリアル >MySQL (5.x) が共通テーブル式 (WITH 句) をサポートしないのはなぜですか?

MySQL (5.x) が共通テーブル式 (WITH 句) をサポートしないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-12 13:36:42184ブラウズ

Why MySQL 5.x Doesn't Support Common Table Expressions (WITH Clause)

MySQL 5.x と WITH 句の欠落

MySQL バージョン 5.x は、共通テーブル式 (CTE) を定義するための標準 SQL-99 機能である WITH 句をサポートしていません。 CTE は、単一のクエリ内で使用される一時的な名前付き結果セットです。

この省略は、Oracle、SQL Server、PostgreSQL、Firebird などの他の主要なデータベース システムとは対照的です。これらのシステムにはすべて CTE サポートが含まれています。 この機能に対する要望は少なくとも 2006 年から存在していましたが、MySQL 5.x では未実装のままです。

MySQL 5.x の回避策

WITH 句を使用しない場合、MySQL 5.x ユーザーは、CTE の動作を複製するために別の方法を使用する必要があります。

  • サブクエリ: ネストされたクエリは、メイン クエリ内で参照される一時的な結果セットを生成できます。
  • 一時テーブル: 実際の一時テーブルを作成して参照すると、別の解決策が得られます。
  • ストアド プロシージャ: ストアド プロシージャは、複雑なクエリを定義して再利用するためのメカニズムを提供します。

MySQL 8.0 の約束

MySQL 8.0 では、再帰的 CTE を含む CTE サポートが導入される予定です。この大幅な機能強化により、MySQL の SQL-99 標準への準拠が向上し、この貴重な機能の利点が最大限に活用されます。

MySQL 8.0 が広く利用可能になるまで、上記の回避策は、通常は CTE を使用するクエリを管理するための実用的なソリューションであり続けます。

以上がMySQL (5.x) が共通テーブル式 (WITH 句) をサポートしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。