"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convertir un esquema MySQL a GitHub Wiki Markdown utilizando procedimientos almacenados?

¿Cómo convertir un esquema MySQL a GitHub Wiki Markdown utilizando procedimientos almacenados?

Publicado el 2025-02-06
Navegar:145

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

Convertir el esquema MySQL a GitHub wiki markdown

El problema original planteó preocupaciones sobre la exportación de un esquema de base de datos MySQL en el format de Markdown, específicamente como las Tablas. Para abordar esto, una respuesta detallada proporciona una solución que implica el uso de dos procedimientos almacenados.

Procedimiento almacenado primero: DescribeTable_V2a

Este procedimiento toma un nombre de base de datos como entrada y entrada y entrada y entrada genera una salida que se asemeja a la salida de describir MyTable para todas las tablas en esa base de datos. Logra esto utilizando la base de datos Information_Schema y manipulando los resultados para proporcionar una salida más detallada y organizada. La salida se almacena en la tabla ReportDatadeFS de la base de datos de informes101a.

parámetros:

  • dbname: el nombre de la base de datos para informar sobre.
  • ] Thesession: Un parámetro de salida para mantener el número de sesión asignado para esta operación.
  • DeleteSessionRows: un booleano que indica si elimina las filas de la tabla ReportDatadeFS para esta sesión después de generar la salida.
  • CalltheSecondtoredprocedRoredproCproctoredprocedRoredproCondprocedRededprocedRedingprocredprocedRededprocedRededprocededprocededprocededprocededprocededprocedprow : Un booleano que indica si debe llamar automáticamente al segundo procedimiento almacenado para la salida de impresión bastante imprensadora (describe).

pasos:

  1. crea temporal tablas para almacenar los datos intermedios.
  2. inserta datos en las tablas temporales de la base de datos de información_schema, considerando los nombres de la tabla y las columnas, los tipos, la anulabilidad, las claves y la información adicional.
  3. poblan la tabla de informes de la tabla de informes. Con los datos de las tablas temporales, incluidas las columnas adicionales para la columna y el tipo de longitudes máximas y contadores para valores nulos, clave, predeterminados y adicionales.
  4. Si CallTheseCondSoredProc es verdad Salida bastante impresa y lo agrega a la tabla de informes de informes.
  5. Si CallTheSecondSorRedProc es falso, devuelve un conjunto de resultados de los datos en la tabla ReportDatadeFS para el número de sesión dado.

Segundo procedimiento almacenado: print_tables_like_describe

Este procedimiento toma un número de sesión como entrada y recupera los datos de la tabla ReportDatadeFS. Luego genera una salida con forma de markdown que se asemeja a la salida MyTable de describir pero para cada tabla en la base de datos especificada.

pasos:

  1. itermates sobre las filas de las filas En la tabla ReportDatadeFS, extrayendo los datos necesarios.
  2. genera un encabezado de tabla para cada tabla con el nombre del campo, el tipo, el anulabilidad, la clave, el valor predeterminado e información adicional.
  3. cada columna. Los datos en un ancho y alineación consistentes.
  4. separan las columnas formateadas con barras verticales.
  5. Devuelve la salida formateada como un conjunto de resultados.

usaje :

Para usar los procedimientos almacenados, el usuario puede proporcionar el nombre de la base de datos requerido y otros parámetros. Aquí hay un ejemplo del uso:

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.

Este uso primero llamaría al informe101a.describeTable_V2A Procedimiento almacenado y recuperaría el número de sesión. Luego, llamaría automáticamente el informe101a.print_tables_like_describe el procedimiento almacenado con ese número de sesión para generar la salida bastante impresa. La salida se devolvería como un conjunto de resultados, que se puede consumir y formatearse más, como convertirlo en una tabla formatizada por Markdown.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3