Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Message en console lors de l'exécution d'un script SQL


Sujet :

SQL Procédural MySQL

  1. #1
    Modérateur

    Message en console lors de l'exécution d'un script SQL
    Je rebondis sur le besoin exprimé en 2018 par CAMIC.

    Je souhaite pouvoir afficher dans la console le déroulement des étapes d'un script SQL lancé par mysql -u mon_user -p < mon_script.sql

    C'est un script complet de création d'une BDD et ça peut être un peu long. Quand on lance un tel script, on a un peu l'angoisse de l'écran noir de ne voir aucun message jusqu'à la fin du déroulement du script et le ré-affichage du prompt.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Expert éminent sénior
    Salut CinePhil.

    Comme je l'avais dit à l'époque, on ne peut pas mettre de print dans une procédure stockée.

    Citation Envoyé par CinePhil
    C'est un script complet de création d'une BDD et ça peut être un peu long.
    Dans l'autre sujet :
    --> https://www.developpez.net/forums/d2...s-sauvegardes/
    je vous conseille de découper votre script d'installation en différentes étapes plus petites mais indépendantes les unes des autres.
    Et d'appeler chaque étape par un script batch si vous êtes sous windows, ou en bash si vous êtes sous debian.
    Entre deux étapes, vous pouvez introduire des impressions pour vérifier l'avancement de vos traitements.

    Si vous désirez conserver le script SQL dans sa totalité, ce que je vous déconseille, on peut, pour l'avancement, utiliser une table qui va contenir l'évolution dans l'avancement de votre installation.
    A chaque finalité, vous pouvez insérer une ligne indiquant où vous en êtes.
    Cela peut servir aussi comme point de reprises, puisque vous pouvez stocker l'identifiant de ce qui a déjà été chargé et validé.

    Du coup, vous pouvez consulter, de temps en temps, votre table afin de voir l'évolution de l'installation.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Modérateur

    OK. Dommage !
    C'est possible avec Oracle.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur

    bonjour,

    Dans le script, on peut ajouter
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    system echo "un message"

  5. #5
    Modérateur

    Cool ! Merci ; j'essaierai ça.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Expert éminent sénior
    J'ai testé dans la procédure stockée, voire dans un script SQL, ca ne fonctionne pas.
    Ca eu fonctionné un jour, mais pas dans la version mysql 8.0.
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Modérateur

    Ça fonctionne très bien avec MariaDB version 10.3.22 :
    [philippe@localhost BDD (master)]$ mysql -u root -p < REF_mdb10.2_V0.3.sql
    Enter password:
    Création de la BDD
    Attribution des privilèges à l'utilisateur principal
    Attribution des privilèges à l'utilisateur pef
    Attribution des privilèges à l'utilisateur pef_public
    Table des civilités
    Table des départements
    Table des pays
    Table des sexes
    Table des types d'adrel
    Table des types de téléphone
    Table des villes
    Table des villes françaises
    Table d'administration de la BDD
    Table des informations sur la BDD
    Vue des villes
    [philippe@localhost BDD (master)]$
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Expert éminent sénior
    Salut CinPhil.

    Je suis heureux que cela fonctionne dans MariaDB, coté Linux.
    Dans MySql, coté Windows, il n'y a rien d'équivalent.
    J'ai un peu cherché sans rien trouvé de probant coté windows sous MySql.

    Sauf comme je te l'ai indiqué, en passant par des scripts batch windows, et en lançant séparément chaque tâche que tu désires faire.
    Est-ce que tu as un point de repris en cas de plantage ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Modérateur

    Est-ce que tu as un point de repris en cas de plantage ?
    Non.
    Pour le moment, il s'agit surtout d'importer la BDD vierge sur un autre poste / serveur. Il suffit de voir où ça a planté et de commenter les parties qui ont déjà été faites ou de supprimer la BDD et de relancer le script après correction de ce qui ne va pas. Je verrai à l'usage si ça s'avère peu pratique mais pour le moment, cette solution me suffit.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Expert éminent sénior
    Si l'import de la base ne prend pas beaucoup de temps, oui, en effet, on peut se passer des points de reprise.
    Inversement, si l'import prend disons six heures et que tu plantes cinq minutes avant la fin, tu vas devoir tout recommencer, sans avoir la garantie que cela ne va pas planter encore une fois.
    Le point de reprise sert surtout à ne pas perdre du temps en cas de plantage.

    Bonne continuation !
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

###raw>template_hook.ano_emploi###