Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2006, 17h55   #1
Membre confirmé
 
Avatar de voran
 
Inscription : janvier 2005
Messages : 232
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : janvier 2005
Messages : 232
Points : 239
Points : 239
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
voran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2006, 19h23   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
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 :
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
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2006, 09h34   #3
Membre confirmé
 
Avatar de voran
 
Inscription : janvier 2005
Messages : 232
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : janvier 2005
Messages : 232
Points : 239
Points : 239
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;
voran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2006, 10h37   #4
Membre confirmé
 
Avatar de voran
 
Inscription : janvier 2005
Messages : 232
Détails du profil
Informations personnelles :
Localisation : France, Maine et Loire (Pays de la Loire)

Informations forums :
Inscription : janvier 2005
Messages : 232
Points : 239
Points : 239
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
voran est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h32.


 
 
 
 
Partenaires

Hébergement Web