"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir un schéma MySQL en marque Wiki GitHub en utilisant les procédures stockées?

Comment convertir un schéma MySQL en marque Wiki GitHub en utilisant les procédures stockées?

Publié le 2025-02-06
Parcourir:352

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

Convertir le schéma mysql en github wiki markdown

le problème original a soulevé des préoccupations concernant l'exportation d'un schéma de base de données MySQL dans le format Markdown, spécifiquement sous forme de tables. Pour résoudre ce problème, une réponse détaillée fournit une solution impliquant l'utilisation de deux procédures stockées.

Première procédure stockée: décritstables_v2a

génère une sortie qui ressemble à la sortie de décrire mytable pour toutes les tables de cette base de données. Il y parvient en utilisant la base de données Information_Schema et en manipulant les résultats pour fournir une sortie plus détaillée et organisée. La sortie est stockée dans le tableau ReportDatadefs de la base de données Reporting101a.

Paramètres:

  • dbname: le nom de la base de données à rapporter sur.
  • ] TheSession: un paramètre OUT pour maintenir le numéro de session attribué pour cette opération.
  • DeleteSessionRows: Un booléen indiquant s'il faut supprimer les lignes du tableau ReportDatadefs pour cette session après avoir généré la sortie. : Un booléen indiquant s'il faut appeler automatiquement la deuxième procédure stockée pour une jolie imprimée (décrire-type).
étapes:

crée temporaire temporaire tables pour stocker les données intermédiaires.
  1. inserte les données dans les tables temporaires de la base de données de l'information_schema, en considérant les noms de table et de colonnes, les types, la nullabilité, les touches et les informations supplémentaires.
  2. . Avec les données des tables temporaires, y compris des colonnes supplémentaires pour la colonne et tapez des longueurs et des compteurs maximums pour les valeurs nuls, clés, par défaut et supplémentaires.
  3. Si CallTheSecondStoredProc est vrai, il appelle une autre procédure stockée nommée print_tables_like_decribe qui génère qui génère qui génère Sortie assez imprimée et l'ajoute à la table ReportOutput.
  4. Si CallTheSecondStoredProc est faux, il renvoie un ensemble de résultats des données dans la table ReportDatadefs pour le numéro de session donné.
Deuxième procédure stockée: print_tables_like_describe

Cette procédure prend un numéro de session en entrée et récupère les données de la table ReportDatadefs. Il génère ensuite une sortie de marque de markdown qui ressemble à la sortie MyTable décrite mais pour chaque tableau de la base de données spécifiée.

étapes:

itérate sur les lignes Dans la table ReportDatadefs, l'extraction des données nécessaires.
  1. génère un en-tête de table pour chaque table avec le nom de champ, type, nullabilité, clé, valeur par défaut et informations supplémentaires.
  2. Formats de chaque colonne de chaque colonne Les données en largeur et alignement cohérentes.
  3. sépare les colonnes formatées avec des barres verticales.
  4. renvoie la sortie formatée comme un jeu de résultats. :
  5. Pour utiliser les procédures stockées, l'utilisateur peut fournir le nom de la base de données requis et d'autres paramètres. Voici un exemple de l'utilisation:

set @theoutvar = -1; - une variable utilisée comme variable out ci-dessous - Remarque: avec «True» en tant que 4ème paramètre, il s'agit d'une affaire d'appel. Ce qui signifie, vous avez terminé. Appel Reporting101a.Descritables_v2a ('stackOverflow', @ theoutvar, false, true); - principalement utilisé si le 4ème paramètre ci-dessus est faux Appel reporting101a.print_tables_like_describe (@theoutvar); - Charge les données pour les résultats plus jolis au format de morceaux. Cette utilisation appellera d'abord la procédure stockée de reportage101a.descritables_v2a et récupérerait le numéro de session. Ensuite, il appellerait automatiquement la procédure stockée Reporting101a.print_tables_like_describe avec ce numéro de session pour générer la sortie assez imprimée. La sortie serait renvoyée comme ensemble de résultats, qui peut être consommée et formatée davantage, comme la convertir en une table formatée de marque.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3