ホームページ > データベース > mysql チュートリアル > ストアド プロシージャを使用して MySQL スキーマを GitHub Wiki マークダウンに変換する方法

ストアド プロシージャを使用して MySQL スキーマを GitHub Wiki マークダウンに変換する方法

Linda Hamilton
リリース: 2024-11-27 22:50:10
オリジナル
731 人が閲覧しました

How to Convert a MySQL Schema to GitHub Wiki Markdown Using Stored Procedures?

MySQL スキーマを GitHub Wiki マークダウンに変換する

元の問題では、MySQL データベース スキーマをマークダウン形式、特にテーブルとしてエクスポートすることについて懸念が生じました。これに対処するために、詳細な応答では 2 つのストアド プロシージャの使用を伴う解決策が提供されます。

最初のストアド プロシージャ: descriptionTables_v2a

このプロシージャは入力としてデータベース名を受け取り、そのデータベース内のすべてのテーブルに対する DESCRIBE myTable の出力に似た出力を生成します。これは、INFORMATION_SCHEMA データベースを利用し、結果を操作してより詳細で整理された出力を提供することによって実現されます。出力は、Reporting101a データベースの reportDataDefs テーブルに保存されます。

パラメータ:

  • dbName: レポート対象のデータベース名。
  • theSession: このセッションに割り当てられたセッション番号を保持する OUT パラメータ操作。
  • deleteSessionRows: 出力の生成後にこのセッションの reportDataDefs テーブルから行を削除するかどうかを示すブール値。
  • callTheSecondStoredProc: 保存のために 2 番目のストアド プロシージャを自動的に呼び出すかどうかを示すブール値。印刷 (DESCRIBE のような)出力。

手順:

  1. 中間データを保存する一時テーブルを作成します。
  2. データを一時テーブルに挿入します。 INFORMATION_SCHEMA データベース。テーブルと列の名前、型、NULL 値の許容性、キーなどを考慮します。情報。
  3. reportDataDefs テーブルに一時テーブルのデータを設定します。これには、列と型の最大長の追加列と、null、キー、デフォルト、および追加の値のカウンターが含まれます。
  4. If callTheSecondStoredProc TRUE の場合、Print_Tables_Like_Describe という名前の別のストアド プロシージャを呼び出し、きれいに印刷された出力を生成し、それを reportOutput に追加します。 table.
  5. callTheSecondStoredProc が FALSE の場合、指定されたセッション番号の reportDataDefs テーブル内のデータの結果セットを返します。

2 番目のストアド プロシージャ: Print_Tables_Like_Describe

この手順にはセッション番号が必要です入力としてデータを取得し、reportDataDefs テーブルからデータを取得します。次に、DESCRIBE myTable 出力に似た Markdown 形式の出力を生成しますが、指定されたデータベース内のすべてのテーブルを対象としています。

ステップ:

  1. reportDataDefs テーブルの行を反復処理して、必要なデータを抽出します。
  2. フィールド名、型、NULL 値の許容性、キー、デフォルト値、および追加情報を含む各テーブルのテーブル ヘッダーを生成します。 .
  3. 各列のデータを一貫した幅と配置にフォーマットします。
  4. フォーマットされたデータを分離します。
  5. フォーマットされた出力を結果セットとして返します。

使用法:

ストアド プロシージャを使用するには、ユーザーは、必要なデータベース名とその他のパラメータを指定できます。使用例を次に示します。

SET @theOutVar =-1; -- A variable used as the OUT variable below

-- Note: with `TRUE` as the 4th parameter, this is a one call deal. Meaning, you are done.
call Reporting101a.describeTables_v2a('stackoverflow',@theOutVar,false,true);

-- Primarily used if the 4th parameter above is false
call Reporting101a.Print_Tables_Like_Describe(@theOutVar); -- loads data for prettier results in chunk format.
ログイン後にコピー

この使用法では、最初に Reporting101a.describeTables_v2a ストアド プロシージャを呼び出し、セッション番号を取得します。次に、そのセッション番号を使用して Reporting101a.Print_Tables_Like_Describe ストアド プロシージャを自動的に呼び出し、きれいに印刷された出力を生成します。出力は結果セットとして返され、これを使用して、Markdown 形式のテーブルに変換するなど、さらにフォーマットすることができます。

以上がストアド プロシージャを使用して MySQL スキーマを GitHub Wiki マークダウンに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート