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 28/12/2007, 18h12   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à plou_fr
Par défaut créer fichier avec un Trigger

Bonjour,

Je voudrais savoir si il est possible de créer un fichier avec un trigger ... je m'explique.
En fait le but de ceci est que, lorsque qu'il y a une modification de faite sur une base, le trigger le detecte est crée automatiquement un fichier qui contiendrais les modification effectués afin de pouvoir y injecter dans une autre base.

Je sais pas du tout si c'est possible =(

Merci de vos réponses
plou_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 16h13   #2
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à plou_fr
Par défaut autre solution

bonjour,

je cherche toujours une solution à mon problème =)
J'ai pensé faire un dump de la table lorsque celle-ci est modifiée.
Je ne trouve rien qui indique si on peut faire un dump à partir d'un trigger
par exemple

Code :
1
2
3
CREATE TRIGGER test AFTER INSERT ON test
FOR EACH ROW
mysqldump -h 127.0.0.1 -u user -p pass test > test.sql
Biensur sa ne marche pas =)

J'ai pensé aussi faire le dump dans une function et l'appeler avec le trigger.
Si quelqu'un à une solution.
Pour l'instant j'ai fait ce trigger :

Code :
1
2
3
4
CREATE TRIGGER test
after UPDATE ON test
FOR each row
SELECT * FROM test INTO OUTFILE 'D:\test.txt';
Sa fonctionne seulement moi je veut récuperer les requêtes qui ont été effectuées.

Je voulais aussi savoir si il est possible de mettre plusieurs actions pour le trigger, c'est à dire quelque chose comme sa :

Code :
CREATE TRIGGER test AFTER INSERT,DELETE,UPDATE ON test ....
Merci de vos réponse.
plou_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h10   #3
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Il me semble que tu essaies de réinventer la roue, ou plus exactement la réplication http://dev.mysql.com/doc/refman/5.0/fr/replication.html.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 14h53   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à plou_fr
Par défaut =)

Oui j'avais regardé avec la réplication mais seulement sa ne dépend pas de moi.
En fait j'ai 2 base (1 locale et 1 sur serveur distant), le but c'est que quand la base locale est mise à jour sa met à jour la base distante (donc la réplication était toute indiquée), mais mon patron veut que je fasse sa avec les trigger et des petits prog en delphi.
En gros, avec un trigger quand une modif est faite récuperer ce qui à été rajouté.
Un prog delphi en local qui detecte le nouveau fichier et qui l'envoi par ftp sur le serveur distant.
Un prog en delphi qui écoute et quand un fichier est arrivé, l'insert dans la base deistante et archive le fichier.

Voilà, il faut que je me débrouille avec sa =) et je galère un peu.

Maintenant si c'est pas possible avec les trigger, ben faudra que ja fasse autrement.
plou_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 11h40   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
C'est toujours possible, simplement il va falloir que tu fasses tout toi-même, en particulier réécrire l'UPDATE à partir de la pseudo-table new.

Perso, je te conseillerais plutôt que créer des colonnes "date de dernière modif", soit en TIMESTAMP ON UPDATE CURRENT TIMESTAMP, soit alimentées par un trigger. ça te permet ensuite de faire un SELECT INTO OUTFILE sur les données modifiées depuis la dernière exportation, et de les re-charger dans ton autre base avec LOAD DATA INFILE.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 15h14   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 26
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2007
Messages : 26
Points : 13
Points : 13
Envoyer un message via MSN à plou_fr
Par défaut =)

Merci antoun !
Ta solution me semble la plus adaptée =) je n'avais pas pensé à sa.
Merci beaucoup.
PLus qu'a mettre tout sa en place moi =)
plou_fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2008, 15h25   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Attention, ce système peut poser problème si des données sont ajoutées ou modifiées PENDANT l'export. Les deux solutions classiques sont :
  • Fermer l'accès à la base le temps de faire l'export
  • Enregistrer la date-heure courante en début de processus et ne rien exporter qui soit postérieur (ces données-là feront partie du prochain export).
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun 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 02h49.


 
 
 
 
Partenaires

Hébergement Web