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

Requêtes MySQL Discussion :

Le REPLACE de LOAD DATA INFILE ne marche pas !


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Points : 27
    Points
    27
    Par défaut Le REPLACE de LOAD DATA INFILE ne marche pas !
    Bonjour à tous,

    Alors voila quelque chose que je ne comprends absolument pas...
    J'ai un fichier csv dans lequel il y a des données que j'inclus ensuite dans une bdd mysql par le biais de LOAD DATA INFILE.

    Jusque là, rien de très compliqué, ma requête fonctionne, SAUF qu'il ne m'efface pas mes anciennes données de ma table. Or, je souhaiterais qu'il fasse la suppression d'abord, puis qu'il rajoute les nouvelles données (ce qu'est censé faire un REPLACE quoi ).

    Voici la requête en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    LOAD DATA INFILE 'monfichier'
    	REPLACE
            INTO TABLE matable
     
    FIELDS
    	TERMINATED BY ','
    	ENCLOSED BY '"'
     
    LINES
    	TERMINATED BY '\n'
     
    IGNORE 1 LINES;
    Je suppose que c'est moi qui oublie quelque chose, mais là, j'ai le nez dedans depuis pas mal d'heures et je pense que des points de vues extérieurs pourraient m'être utiles

    Merci à vous pour votre aide.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Bonjour,

    Votre table a-t-elle une clé primaire auto-incrémentée ?
    Parce que REPLACE ne fonctionne que sur la clé primaire ou sur un index unique. Or, si votre table a une clé auto-incrémentée, il faut créer un index unique sur les colonnes permettant de différencier les lignes autrement que sur cette clé primaire.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Merci de ton aide ced.

    Effectivement ma table n'avait pas de clé primaire, ne me demande pas pourquoi, c'est pas moi qui décide ^^.

    Du coup j'ai mis tous mes champs en unique et là magie ça marche.

    Je te remercie de ton aide, je me doutais que c'était un truc du style m'enfin bon, c'est réglé.

    Merci encore à toi

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Tous tes champs en UNIQUE ?
    Non, plutôt tous tes champs dans la même contrainte unique ? Sinon, ça va vite coincer ...
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    Oui pardon tous les champs dans la même contrainte unique.
    Je me suis mal exprimé

    Merci à toi encore

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

Discussions similaires

  1. [LOAD DATA INFILE] clé auto incrémentés
    Par ashurai dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/02/2006, 17h17
  2. Réponses: 5
    Dernier message: 18/04/2005, 12h38
  3. probleme avec "LOAD DATA INFILE" et les b
    Par Koo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2004, 09h37
  4. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 14h59
  5. petit soucis lors d'un LOAD DATA INFILE
    Par Jovial dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 04/06/2004, 11h58

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