IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

recherche de la liste des triggers depuis une requête


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti Avatar de voran
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 346
    Points
    346
    Par défaut recherche de la liste des triggers depuis une requête
    Hello,

    Je souhaite récupérer la liste des triggers depuis une session ouverte à partir de l'utilisateur propriétaire de ce(s) trigger(s)

    la commande show triggers ne semble pas me convenir car je dois récupérer la liste des triggers depuis un script sql.

    J'utilise principalement MySQL 5 mais une solution pour la version 4 m'intéresse également.

    Je ne trouve pas l'équivalent de ce que je fais sur oracle et sql server, à savoir sur ORACLE:

    select trigger_name from user_triggers;
    depuis un script PL/SQL et des curseurs.

    Merci de votre aide

  2. #2
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut,

    Pourquoi SHOW TRIGGERS ne te convient pas ? Cela revient à faire un SELECT, mais dont le nombre de colonnes est fixé.

    Si j'ai bien compris, tu veux quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show triggers where Definer = USER();
    Avec MySQL 5.1, il sera possible de faire la même chose en utilisant INFORMATION_SCHEMA, car ils ont rajouté la colonne "Definer" dans la table triggers.

    Il n'existe pas de solution pour MySQL 4, étant donné que les triggers sont apparus à partir de la 5

  3. #3
    Membre averti Avatar de voran
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 346
    Points
    346
    Par défaut
    Effectivement, pour MySQL 4 c'est une bonne raison, ou avais je la tête ?

    Quelques précisions supplémentaires :
    Je dois exécuter cette requête depuis un utilisateur lambda (root ou utilisateur avec privilèges de type admin interdit).

    INFORMATION_SCHEMA peut elle être consultée par un utilisateur lamdba ?

    Avec ORACLE (que je connais beaucoup mieux ) je récupère l'information dans une variable à l'aide d'un select trigger_name into var from user_triggers;
    par exemple

    par contre, j'avoue que le show triggers me laisse perplexe, car cette commande me balance toutes les informations à la manière d'un select *.
    Je vais essayer cela, je vais bien voir ...
    DECLARE cur1 CURSOR FOR show triggers;

  4. #4
    Membre averti Avatar de voran
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 242
    Points : 346
    Points
    346
    Par défaut
    pb résolu. J'ai mes infos. Merci Biglo

    La table triggers a été ajouté à INFORMATION_SCHEMA à partir de la 5.0.10.
    Donc la requête suivante permet d'obtenir les infos qu'il me faut à partir de cette version.

    select trigger_name from INFORMATION_SCHEMA.triggers;

    Et ce depuis n'importe quel schema, pas besoin d'être root.

    Par contre, il n'y a pas de colonne STATUS indiquant l'état de l'objet comme sur les autres bases. Je suppose que si le trigger est "invalide" il n'est pas présent.

    Bye

    Voran

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Listing des entrées d'une table fille depuis listing table mère
    Par Romain_33 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/05/2009, 00h48
  2. Liste des colonnes d'une requête
    Par romuald07 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 05/08/2008, 17h24
  3. Supprimer des fichiers depuis une liste déroulante
    Par Flo88 dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/03/2008, 09h14
  4. Réponses: 7
    Dernier message: 30/05/2007, 16h17
  5. Liste des champs d'une requête
    Par Virgile59 dans le forum Access
    Réponses: 4
    Dernier message: 07/02/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo