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

 PostgreSQL Discussion :

ajouter date automatiquement lors d'un import de fichier


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Points : 46
    Points
    46
    Par défaut ajouter date automatiquement lors d'un import de fichier
    Bonjour à tous,

    voici la table que j'ai crée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE test ( 
     
    version_agent varchar (20),
    nb_poste int,
    date, date
    );
    J'importe le fichier test.txt avec COPY test '/../test.txt' DELIMITER ';';
    Par contre j'ai un message d'erreur.
    Du fait que dans mon fichier, il n'y a pas de date, il ne l'ajoute pas.
    Ce que je voudrais c'est à chaque fois que je fais import d'un fichier, il ajoute automatiquement la date, sans le fichier.
    Je travaille avec postgres et je voudrais faire cela en SQL.
    Comment faire ?

    Cordialement,

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Il y a deux choses à faire:
    1) dans le COPY, préciser explicitement quelles sont les colonnes qui correspondent au format du fichier, voir la syntaxe de copy dans la doc.
    2) dans la définition de la table, mettre now() comme valeur par défaut de la colonne date.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par estofilo Voir le message
    Il y a deux choses à faire:
    1) dans le COPY, préciser explicitement quelles sont les colonnes qui correspondent au format du fichier, voir la syntaxe de copy dans la doc.
    2) dans la définition de la table, mettre now() comme valeur par défaut de la colonne date.
    Je suis bloqué pour COPY.

    Voici ma requête,
    COPY table colonnes FROM 'fichiertxt' DELIMITER ';';
    j'ai une erreur je rajoute les [()] pareil.

    Tu pourrais me montrer un exemple.

    Cdt,

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    La syntaxe donnée par l'aide est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    COPY tablename [ ( column [, ...] ) ]
        FROM { 'filename' | STDIN }
        [ [ WITH ] 
              [ BINARY ]
              [ OIDS ]
              [ DELIMITER [ AS ] 'delimiter' ]
              [ NULL [ AS ] 'null string' ]
              [ CSV [ HEADER ]
                    [ QUOTE [ AS ] 'quote' ] 
                    [ ESCAPE [ AS ] 'escape' ]
                    [ FORCE NOT NULL column [, ...] ]
    Donc dans ton cas je ferais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COPY test(version_agent , nb_poste) FROM 'fichiertxt' DELIMITER ';';
    Si ça ne marche pas, fais donc un copier-coller de la commande soumise et de l'erreur obtenue.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par estofilo Voir le message
    La syntaxe donnée par l'aide est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    COPY tablename [ ( column [, ...] ) ]
        FROM { 'filename' | STDIN }
        [ [ WITH ] 
              [ BINARY ]
              [ OIDS ]
              [ DELIMITER [ AS ] 'delimiter' ]
              [ NULL [ AS ] 'null string' ]
              [ CSV [ HEADER ]
                    [ QUOTE [ AS ] 'quote' ] 
                    [ ESCAPE [ AS ] 'escape' ]
                    [ FORCE NOT NULL column [, ...] ]
    Donc dans ton cas je ferais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COPY test(version_agent , nb_poste) FROM 'fichiertxt' DELIMITER ';';
    Si ça ne marche pas, fais donc un copier-coller de la commande soumise et de l'erreur obtenue.
    Merci estofilo.
    Voilà pour ceux qui auront le même problème :
    Permet d'ajouter une la date lors de la saisie de donnée ou importation de fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE test_date (date_creation date NOT NULL default 'now' );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COPY test(colone1, colone2,...) FROM 'fichiertxt' DELIMITER ';';

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 68
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par estofilo Voir le message
    Il y a deux choses à faire:
    1) dans le COPY, préciser explicitement quelles sont les colonnes qui correspondent au format du fichier, voir la syntaxe de copy dans la doc.
    2) dans la définition de la table, mettre now() comme valeur par défaut de la colonne date.
    en faites j'ai constaté que la date ça me mettait la date de la création de la BDD.

    Et non la date lors de l'ajout d'un fichier.
    ceci n'est pas correcte,"CREATE TABLE test_date (date_creation date NOT NULL DEFAULT 'now' );" tu ne saurais pas comment je peux faire ?

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Ce n'est pas 'now', c'est now()

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

Discussions similaires

  1. [AC-2007] Ajout d'une durée de 12:00 lors d'un import de fichier Excel
    Par lbrun79 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2015, 13h52
  2. [MySQL] Erreur de syntaxe lors de l'import de fichier .sql
    Par dadoo91 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/05/2008, 07h47
  3. Réponses: 14
    Dernier message: 19/09/2007, 13h39
  4. Pb de type lors de l'importation de fichier Excel
    Par afossier dans le forum Access
    Réponses: 5
    Dernier message: 05/04/2006, 17h03
  5. Réponses: 4
    Dernier message: 27/10/2005, 11h05

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