Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34

    [MySQL] creare automaticamente le colonne

    Buongiorno a tutti,

    devo importare un file di qualche migliaio di righe e colonne in una tabella e trovo improponibile creare così tante colonne manualmente prima di lanciare il comando LOAD DATA INFILE

    La prima riga di questo file, come spesso accade, è l'intestazione che contiene il nome di ogni colonna.

    Vorrei quindi fare in modo con una query di creare automaticamente tutte le colonne necessarie leggendo dalla prima riga e popolare la tabella leggendo le successive.

    Qualcuno sa darmi qualche dritta?

    Grazie mille!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34
    up

  3. #3
    A parte il nome, ci vorrebbe anche il tipo e l'eventuale lunghezza per poter implementare il sistema.

    Ad ogni modo, puoi utilizzare una query ALTER TABLE tabella ADD COLUMN ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34
    Son tutti del BOOL, tranne il primo che è VARCHAR(50)

    il problema però è come faccio ad aggiungere le colonne automaticamente, il file ha questo aspetto:

    nome A B C D ...
    X 1 0 1 0
    Y 0 1 0 0
    Z 1 0 0 1
    ...

    C'è un modo per usare la prima riga per creare tutte le colonne automaticamente?

  5. #5
    Originariamente inviato da dg3
    C'è un modo per usare la prima riga per creare tutte le colonne automaticamente?
    Mi sembra di averti già risposto al riguardo ....

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34
    scusa, allora non ho capito:
    se faccio
    ALTER TABLE tabella ADD COLUMN nome A B C D...
    non va perché devo specificare che le colonne sono BOOL

  7. #7
    Originariamente inviato da dg3
    scusa, allora non ho capito:
    se faccio
    ALTER TABLE tabella ADD COLUMN nome A B C D...
    non va perché devo specificare che le colonne sono BOOL
    Se non conisci l'SQL, forse dovresti studiarlo.

    http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34
    1) Grazie per il supporto
    2) Se comunque ti da fastidio rispondere non farlo, non ne sei tenuto
    3) È proprio da quel link che sono partito, ma nella specifica vedo:
    codice:
    ADD [COLUMN] (col_name column_definition,...)
    dopo col_name c'è sempre column_definition e anche ammesso che possa mettere tutti i col_name di seguito (separati da tab) poi dovrei scrivermi qualche migliaio di BOOL consecutivi che non so nemmeno di preciso quanti sono.

  9. #9
    Originariamente inviato da dg3
    3) È proprio da quel link che sono partito, ma nella specifica vedo:
    codice:
    ADD [COLUMN] (col_name column_definition,...)
    dopo col_name c'è sempre column_definition e anche ammesso che possa mettere tutti i col_name di seguito (separati da tab) poi dovrei scrivermi qualche migliaio di BOOL consecutivi che non so nemmeno di preciso quanti sono.
    Per prima cosa, nel manuale NON c'è scritto di usate i tab ma le virgole come separatori tra vari gruppi [col_name column_definition].

    Oltre a ciò, il numero di BOOL sarà uguale al numero di colonne - 1 (visto che la prima è un varchar).

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    34
    nel manuale NON c'è scritto di usate i tab ma le virgole come separatori tra vari gruppi
    Appunto! Il mio file è separato da tab, non è che ce li metto io a mano

    il numero di BOOL sarà uguale al numero di colonne - 1
    Non so nemmeno di preciso quante colonne ho di volta in volta, oltre 4000 ma può variare

    Più che altro è possibile farlo in SQL o devo crearmi uno script che mi modifica la tabella prima e poi inserire i dati?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.