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 :

export csv ou sql par un trigger


Sujet :

SQL Procédural MySQL

  1. #1
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut export csv ou sql par un trigger
    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

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut dynamisation du nom de fichier csv
    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.
    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
    qui ne fonctionne pas

    par contre celui ci fonctionne
    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`
    comment faire pour dynamiser le nom du fichier csv.
    merci d'avance.

  3. #3
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    Bonjour !

    qui ne fonctionne pas
    Il se passe quoi exactement? Message d'erreur?

    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()));

  4. #4
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    Voici le message :
    #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
    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.
    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.

  5. #5
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    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

    @+

  6. #6
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    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.

  7. #7
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut
    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é ...

Discussions similaires

  1. [MySQL] Export CSV d'une requête par un bouton
    Par siuol77 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/07/2010, 13h24
  2. Export CSV à partir d'une requête SQL
    Par neimad31 dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/08/2009, 13h10
  3. Réponses: 0
    Dernier message: 05/01/2009, 11h28
  4. SQL 2005 lors de l'export créer un fichier par procédure
    Par hunter007 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/03/2008, 18h25
  5. ms sql server export csv
    Par Alex35 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/03/2007, 13h37

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