Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [mysql]creare una tabella in mysql da un file csv

    Salve a tutti. Avrei bisogno di un aiuto.
    Ho un file csv con più di 255 campi.
    Dovrei creare una tabella mysql per importarlo.

    C'è un sistema, o un software free che permetta di:

    1) Creare automaticamente i nomi dei campi dalle intestazioni delle colonne del file csv (essendo più di 255).
    2) Importare i dati.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    per creare la tabella usa un qualsiasi linguaggio di programmazione che legga la prima riga del file e crei la query per creare la tabella, ovviamente dovrai definire dei criteri per stabilire il tipo di dato e le caratteristiche.

    Una volta creata la tabella qualsiasi manager (tipo phpMyAdmin) ha una procedura di importazione dei dati da csv.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Quote Originariamente inviata da las Visualizza il messaggio
    per creare la tabella usa un qualsiasi linguaggio di programmazione che legga la prima riga del file e crei la query per creare la tabella, ovviamente dovrai definire dei criteri per stabilire il tipo di dato e le caratteristiche.

    Una volta creata la tabella qualsiasi manager (tipo phpMyAdmin) ha una procedura di importazione dei dati da csv.


    Grazie prima di tutto per aver risposto.
    Purtroppo non ti seguo.
    Quello che vorrei fare è creare i campi di una tabella, in automatico, partendo dalle colonne di un foglio excel, che sono più di un centinaio.
    Non c'è qualche tool che lo faccia?

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non credo che esistano, perchè il problema è che per creare la tabella devi indicare per ciascuno campo tutta una serie di cose che nel csv non ci sono, ad esempio il tipo di dato (intero, decimale, data etc..) oppure se può o non può essere null, il dato di default etc...

    quindi quello che ti suggerivo è, se conosci qualche linguaggio di programmazione, scrivi una funzione ad hoc per il tuo file, qualcosa del tipo


    codice:
    $primaRiga = leggiPrimaRigaFile();
    
    echo "CREATE TABLE nomeTablla (";
    
    for ($primaRiga AS $campo){
        echo "$campo VARCHAR(5), ";
    }
    
    echo ");";
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    Quote Originariamente inviata da las Visualizza il messaggio
    non credo che esistano, perchè il problema è che per creare la tabella devi indicare per ciascuno campo tutta una serie di cose che nel csv non ci sono, ad esempio il tipo di dato (intero, decimale, data etc..) oppure se può o non può essere null, il dato di default etc...

    quindi quello che ti suggerivo è, se conosci qualche linguaggio di programmazione, scrivi una funzione ad hoc per il tuo file, qualcosa del tipo


    codice:
    $primaRiga = leggiPrimaRigaFile();
    
    echo "CREATE TABLE nomeTablla (";
    
    for ($primaRiga AS $campo){
        echo "$campo VARCHAR(5), ";
    }
    
    echo ");";
    Grazie ancora per le dritte.
    ho trovato girando questo
    http://www.winsite.com/Business/Spre...xcel-to-MySQL/
    sembra che faccia quello che vorrei ottenere.

  6. #6
    ... a quanto pare ancora non ho risolto del tutto.
    Con il softwarino scaricato da quel link riesco a riscostruire lo schema della mia tabella in mysql e riesco solo ad importare i primi 3 record.
    Ora quello che vorrei è utilizzare Mysql Administrator per importare (accodare) i restanti (c.a. 100.000 record).
    Il problema è che mi perdo nei menù di Mysql Administrator, non riesco a trovare lmport. (sono abituato con import di phpmyadmin che in questo caso si imballa) .
    Sapete dirmi la procedura esatta ?
    Grazie

  7. #7
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non conosco Mysql Administrator, se phpMyAdmin si imballa puoi provare con sqlyog (la versione community è gratuita) da li ti basta cliccare con il tasto destro sulla tabella e scegliere import from csv ed è fatta.

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  8. #8
    Quote Originariamente inviata da las Visualizza il messaggio
    non conosco Mysql Administrator, se phpMyAdmin si imballa puoi provare con sqlyog (la versione community è gratuita) da li ti basta cliccare con il tasto destro sulla tabella e scegliere import from csv ed è fatta.

    grazie per la risposta.
    Ho scaricato sqlyog, solo che andando ad importare dal mio file csv, mi dà l'errore che può importare fino a 255 campi. Io ne ho c.a. 500 campi. Come posso settarlo per aumentare il numero di campi che è possibile importare?
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.