BASH, MariaDB : Lister les tables d'une base et compter leurs enregistrements
Table des matières
Dans cet article, je vous propose un script qui va lister toutes les tables d'une base de données et pour chacune des tables afficher le nombre d'enregistrements.
Les informations d'identification SQL sont demandées par saisie au clavier ainsi que le nom de la base.
A voir le cas d'usage mais je m'en sert pour vérifier rapidement le bon import d'une base (dump et restauration) lors d'une migration.
Charge à l'expert en charge de l'application de vérifier la cohérence des données mais ça donne un aperçu que tout s'est au moins bien importé.
Introduction
Dans cet article, je vous propose un script qui va lister toutes les tables d'une base de données et pour chacune des tables afficher le nombre d'enregistrements.
Les informations d'identification SQL sont demandées par saisie au clavier ainsi que le nom de la base.
A voir le cas d'usage mais je m'en sert pour vérifier rapidement le bon import d'une base (dump et restauration) lors d'une migration.
Charge à l'expert en charge de l'application de vérifier la cohérence des données mais ça donne un aperçu que tout s'est au moins bien importé.
Le script
Code BASH :
#! /bin/bash # usage : adrien_check_base.sh echo "##################################" echo "# INFOS DEMANDEES : " read -p "# Database : " -r DBNAME read -p "# User : " -r DBUSER read -p "# Pass : " -r DBPASS echo "##################################" TABLESLIST=$(echo "show tables;" | mysql -sN -u "$DBUSER" -p"$DBPASS" "$DBNAME" ) TABLESNB=0 echo "##################################" echo "# LISTE DES TABLES AVEC LEUR NOMBRE DE LIGNES : " for t in $TABLESLIST do TABLELINES=0 TABLELINES=$(echo "SELECT count(*) AS NB FROM $t" | mysql -sN -u "$DBUSER" -p"$DBPASS" "$DBNAME" ) echo "# $t : $TABLELINES" ((TABLESNB=TABLESNB+1)) done echo "##################################" echo "##################################" echo "# NB TABLES DANS LA BASE : $TABLESNB" echo "##################################"