如何使用預存程序將 MySQL 架構轉換為 GitHub Wiki Markdown?

Linda Hamilton
發布: 2024-11-27 22:50:10
原創
702 人瀏覽過

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

將MySQL 架構轉換為GitHub Wiki Markdown

最初的問題引起了有關將MySQL 資料庫架構導出為Markdown 格式(特別是作為表)的擔憂。為了解決這個問題,詳細的回覆提供了一個涉及使用兩個預存程序的解決方案。

第一個預存程序:describeTables_v2a

此程序將資料庫名稱作為輸入,產生類似該資料庫中所有資料表的 DESCRIBE myTable 輸出的輸出。它透過利用 INFORMATION_SCHEMA 資料庫並操作結果以提供更詳細和更有組織的輸出來實現這一點。輸出儲存在 Reporting101a 資料庫的 reportDataDefs 表中。

參數:

  • dbName:要報告的資料庫名稱。
  • theSession:一個 OUT 參數,用於保存為此分配的會話號操作。
  • deleteSessionRows:一個布林值,指示產生輸出後是否從該會話的 reportDataDefs 表中刪除行。
  • callTheSecondStoredProc:一個布林值,指示是否自動呼叫第二個預存程序以進行漂亮操作。列印(類似 DESCRIBE)輸出。

步驟:

  1. 建立臨時表來儲存中間資料。
  2. 將資料插入臨時表中INFORMATION_SCHEMA 資料庫,考慮表格和欄位名稱、類型、可空性、鍵等資訊。
  3. 使用臨時表中的資料填入 reportDataDefs 表,包括列的附加列和類型最大長度以及 null、鍵、預設值和額外值的計數器。
  4. 如果呼叫TheSecondStoredProc為 TRUE,它呼叫另一個名為 Print_Tables_Like_Describe 的預存程序,則該程序產生漂亮的列印輸出並將其新增至 reportOutput表。
  5. 如果 callTheSecondStoredProc 為 FALSE,它將傳回給定會話號碼的 reportDataDefs 表中資料的結果集。

第二個預存程序:Print_Tables_Like_Describe

此程序將會話編號作為輸入並從reportDataDefs 表中擷取資料。然後,它會產生類似於 DESCRIBE myTable 輸出的 Markdown 格式輸出,但針對指定資料庫中的每個表。

步驟:

  1. 迭代reportDataDefs表中的行,擷取必要的資料。
  2. 為每個表產生一個表頭,其中包含欄位名稱、類型、可為空性、鍵、預設值和額外資訊.
  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 Markdown?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板