Scripts et Programmation

BASH, MariaDB : Lister les tables d'une base et compter leurs enregistrements

Table des matières

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 "##################################"
Cette page a été vue 224 fois