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 :

ID et LOAD DATA INFILE [MySQL-5.5]


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut ID et LOAD DATA INFILE
    Bonjour ,

    je cherche à ajouter par ordre de colonne les valeurs d'un fichier avec la fonction LOAD DATA LOCALE INFILE.
    Le fichier à l'origine contient 4 valeurs mais dans la première colonne j'ai ajouté un ID.

    Car quand j'essaie cette requête cela ne marche pas, j'ai essayé aussi avec le nom de des colonnes.

    Je suis sur ubuntu et j'ai un script similaire sur windows et je rencontre les mêmes erreur..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    mysql -u "$DB_USER" \
          --password="$DB_PASS" \
          --database="$DB" \
          --enable-local-infile \
          --execute='LOAD DATA LOCAL INFILE  "/var/lib/arpwatch/arp.dat"
                     INTO TABLE dhcp (col2, col3, col4, col5)
                     FIELDS ENCLOSED BY " "
                     LINES TERMINATED BY "\n";'
    Merci par avance

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    J'ai un début de piste qui constate à placer l'id en dernière position et du coup j'ai tout mes enregistrements . Cependant si il existe un autre moyen je suis prenneur.

  3. #3
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Pourriez vous bien préciser :
    - la structure de la table dhcp;
    - la structure des informations à récupérer.

    Si un des champs de la table dhcp est autio incrémenté, vous ne pourrez pas y inserer une valeur.

    Pierre

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Les tables sont composés de la façon suivante :

    table dhcp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    adresse_mac varchar(50) not null
    adresse_ip varchar(30) not null
    nom varchar(50) not null
    id smallint(5) unsigned auto_increment
    le fichier dhcp contient par ligne les informations suivantes :
    00-0c-35-90-3F-fb,192.168.1.89,server

    table fichierdat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    adresse_mac varchar(50) not null
    adresse_ip varchar(30) not null
    horaire int (11)not null
    nom varchar(30) not null
    interface varchar(5) not null
    id smallint(5) unsigned auto_increment
    le fichier fichier.dat contient par ligne les informations suivantes :
    a8:bb:cd:65:c2:11 192.168.1.45 1306275784 debian eth0

    J'en profite pour demander plusieurs renseignement annexe :
    pour les champs adresse Mac et ip le varchar est ce qui convient le mieux comme valeur ou il peut être optimisé ?
    pour le champ horaire de la table fichierdat, la valeur est exprimé en timestamp , il y a possibilité de convertit directement en date ?


    Si un des champs de la table dhcp est auto incrémenté, vous ne pourrez pas y insérer une valeur.
    je comprends pas , car quand je regarde mes tables , j'ai bien mes enregistrement avec un id par ligne

    Le but étant de faire une requête qui comparer les adresses ip et mac du fichierdat au fichier dhcp afin de trouver les adresses non prédéfinies.

    Merci par avance pour les réponses à mes questions.

  5. #5
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Désolé, je ne peux pas répondre aux questions sur l'optimisation des formats de certains de vos champ.

    POur ce qui est du champ auo incrémenté, voici quelques infos.
    Pour la table dhcp vous indiquez
    id smallint(5) UNSIGNED AUTO_INCREMENT
    Cela signifie qu'à chaque nouvel enregistrement dans la table, ce champ sera automatiquement rempli par mysql en prenant le dernier numéro utilisé et en ajoutant 1.
    On ne peut pas agir manuellement dessus.

    Lors d'une importation de données, il s'agit d'une insertion dans la table. Donc, à la validation de l'insertion, mysql va incrémenté le champ ID.
    Or vous, vous tentez de lui inserer une valeur. Il y a conflit.

    Si pour une raison quelconque vous tenez à inseré la colonne 4, il faut revoir la table dhcp :
    - soit supprimer l'auto increméntation du champ id : mauvaise idée, vous risquez de vous retrouver avec des enregistrements ayant un même numéro d'id, pas bon pour l'intégrité référentielle, ni pour l'optimisation.
    - ajouter une colonne dans la table dhcp.

    Pierre

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 134
    Points : 65
    Points
    65
    Par défaut
    Merci de votre réponse,

    Pour l'ID c'est ce que je pensais , en le placant en dernier j'arrive à faire ma requête du coup.

    Je vais refaire ma table avec des bonnes valeurs, histoire d'optimiser le tout.

+ 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, 18h17
  2. Réponses: 5
    Dernier message: 18/04/2005, 13h38
  3. probleme avec "LOAD DATA INFILE" et les b
    Par Koo dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/07/2004, 10h37
  4. Problème avec LOAD DATA INFILE
    Par ka0z dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/06/2004, 15h59
  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, 12h58

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