Bonjour,
Pour faire simple, savez vous s'il est possible via un trigger de faire un export CSV voir SQL des données d'une table?
merci
Bonjour,
Pour faire simple, savez vous s'il est possible via un trigger de faire un export CSV voir SQL des données d'une table?
merci
Bonjour, par rapport a mon post précédent j'ai trouvé la réponse pour faire un export des données insérées dans une table via un trigger, mais il me reste un soucis quand même.
J'aimerais que le nom du fichier de sortie soit dynamique, par exemple qu'il soit daté.
voici le code que j'ai fait jusqu'a présent.
qui ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 DELIMITER | CREATE TRIGGER `TEST`.`ins_trig3` AFTER INSERT ON `TEST`.`account` FOR EACH ROW BEGIN DECLARE patth varchar(255); SET patth='/home/temp/4test.csv'; SELECT * INTO OUTFILE @patth FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM account WHERE account.`acct_num` = NEW.`acct_num` END
par contre celui ci fonctionne
comment faire pour dynamiser le nom du fichier csv.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE TRIGGER ins_trig4 After INSERT ON account FOR EACH ROW SELECT * INTO OUTFILE '/home/temp/4test.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM account WHERE account.`acct_num`=NEW.`acct_num`
merci d'avance.
Bonjour !
Il se passe quoi exactement? Message d'erreur?qui ne fonctionne pas
Sinon pour dynamiser le nom de ton fichier, tu peux concaténer le nom du fichier + la date, un truc du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SET myPath = CONCAT('path_de_base', DATE(NOW()));
Voici le message :
en résumé lorsque je crée le trigger, j'ai une erreur de syntax. Apparement l'export csv ne peut pas récupérer le nom du fichier dans lequel il faut écrire les données depuis une variable.#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@patth
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
FROM account
WHER' at line 7
Il faut (apparement) que cela soit en dur.
L'utilisation de requete dynamique (PREPARE + EXCECUTE) n'est pas non plus utiliser dans un TRIGGER.
Pour l'instant j'ai pas de solution.
Salut !
Ce trigger fonctionne(je me fais pas bouler lors de la création de celui-ci) chez moi :
!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DELIMITER | CREATE TRIGGER myTrigger AFTER INSERT ON T_MY_TABLE FOR EACH ROW BEGIN DECLARE patth varchar(255); SET patth='/home/temp/4test.csv'; SELECT ESVASTAB_ID INTO OUTFILE '@patth' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' FROM T_MY_TABLE WHERE T_MY_TABLE.MY_ID = NEW.MY_ID; END|
Tu as oublié le ';' après WHERE
@+
avez vous vérifié que le trigger s'éxécute bien? personnellement je n'ai pas de sortie (enfin presque)
En effet, mysql a créé un fichier de nom @patth et non du contenu de la variable @patth.
j'en suis toujours au même point.
![]()
Effectivement, je n'ai pas vérifié le fonctionnement réel du trigger.
Je vais voir si y'a moyen !
"L'utilisation de requete dynamique (PREPARE + EXCECUTE) n'est pas non plus utiliser dans un TRIGGER."
Pourquoi??
En faisant un ptit tour sur google, je suis tombé sur ça :
http://forums.mysql.com/read.php?97,23677,23677
Mais je n'ai pas testé ...
Partager