Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menukar Skema MySQL ke Penurunan Wiki GitHub Menggunakan Prosedur Tersimpan?

Bagaimana untuk Menukar Skema MySQL ke Penurunan Wiki GitHub Menggunakan Prosedur Tersimpan?

Linda Hamilton
Linda Hamiltonasal
2024-11-27 22:50:10705semak imbas

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

Menukar Skema MySQL kepada Penurunan Wiki GitHub

Isu asal menimbulkan kebimbangan tentang mengeksport skema pangkalan data MySQL ke dalam format Markdown, khususnya sebagai jadual. Untuk menangani perkara ini, respons terperinci menyediakan penyelesaian yang melibatkan penggunaan dua prosedur tersimpan.

Prosedur Disimpan Pertama: describeTables_v2a

Prosedur ini mengambil nama pangkalan data sebagai input dan menjana output yang menyerupai output DESCRIBE myTable untuk semua jadual dalam pangkalan data itu. Ia mencapai ini dengan menggunakan pangkalan data INFORMATION_SCHEMA dan memanipulasi keputusan untuk memberikan output yang lebih terperinci dan teratur. Output disimpan dalam jadual reportDataDefs bagi pangkalan data Reporting101a.

Parameter:

  • dbName: Nama pangkalan data untuk dilaporkan.
  • theSession: Parameter OUT untuk memegang nombor sesi yang ditetapkan untuk ini operasi.
  • deleteSessionRows: Boolean yang menunjukkan sama ada hendak memadamkan baris daripada jadual reportDataDefs untuk sesi ini selepas menjana output.
  • callTheSecondStoredProc: Boolean yang menunjukkan sama ada untuk memanggil prosedur tersimpan kedua secara automatik untuk cantik percetakan (seperti DESCRIBE) output.

Langkah:

  1. Mencipta jadual sementara untuk menyimpan data perantaraan.
  2. Memasukkan data ke dalam jadual sementara daripada pangkalan data INFORMATION_SCHEMA, mempertimbangkan nama jadual dan lajur, jenis, kebolehbatalan, kunci dan tambahan maklumat.
  3. Mengisi jadual reportDataDefs dengan data daripada jadual sementara, termasuk lajur tambahan untuk lajur dan taip panjang maksimum dan pembilang untuk nilai null, kunci, lalai dan tambahan.
  4. Jika callTheSecondStoredProc adalah BENAR, ia memanggil prosedur tersimpan lain bernama Print_Tables_Like_Describe yang menghasilkan output yang dicetak cantik dan menambahkannya pada reportOutput table.
  5. Jika callTheSecondStoredProc adalah FALSE, ia mengembalikan set hasil data dalam jadual reportDataDefs untuk nombor sesi yang diberikan.

Prosedur Tersimpan Kedua: Print_Tables_Like_Describe

Prosedur ini mengambil nombor sesi sebagai memasukkan dan mendapatkan semula data daripada jadual reportDataDefs. Ia kemudian menjana output berformat Markdown yang menyerupai output DESCRIBE myTable tetapi untuk setiap jadual dalam pangkalan data yang ditentukan.

Langkah:

  1. Lelaran pada baris dalam jadual reportDataDefs, mengekstrak data yang diperlukan.
  2. Menghasilkan pengepala jadual untuk setiap jadual dengan nama medan, jenis, kebolehbatalan, kunci, nilai lalai dan maklumat tambahan .
  3. Memformat setiap data lajur ke dalam lebar yang konsisten dan penjajaran.
  4. Memisahkan lajur yang diformatkan dengan bar menegak.
  5. Mengembalikan output yang diformat sebagai set hasil.

Penggunaan:

Untuk menggunakan prosedur yang disimpan, pengguna boleh memberikan nama pangkalan data yang diperlukan dan parameter lain. Berikut ialah contoh penggunaan:

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.

Penggunaan ini akan memanggil prosedur disimpan Reporting101a.describeTables_v2a dahulu dan mendapatkan semula nombor sesi. Kemudian, ia secara automatik akan memanggil prosedur tersimpan Reporting101a.Print_Tables_Like_Describe dengan nombor sesi itu untuk menjana output yang dicetak dengan cantik. Output akan dikembalikan sebagai set hasil, yang boleh digunakan dan diformatkan lagi, seperti menukarnya kepada jadual berformat Markdown.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Skema MySQL ke Penurunan Wiki GitHub Menggunakan Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn