Mysql
 sql >> Database >  >> RDS >> Mysql

Caricamento di un file .txt a larghezza fissa e delimitato da spazio in MySQL

Questi sono quelli che chiamiamo record "a larghezza fissa" e LOAD DATA non funziona bene con loro. Opzioni:

  1. Pulisci prima i dati in Excel oppure
  2. Carica i dati in una tabella temporanea con una sola colonna, inserendo un'intera riga di testo in quella colonna. Quindi puoi usare SUBSTR() e TRIM() per tagliare le colonne che ti servono nel tavolo finale.
  3. Oppure con le variabili utente (@row) puoi fare tutto all'interno dell'istruzione LOAD DATA.
LOAD DATA LOCAL INFILE 
'/some/Path/segmentation.txt' 
INTO TABLE clip
(@row)
SET slideNum = TRIM(SUBSTR(@row,1,4)),
    startTime = TRIM(SUBSTR(@row,5,13)),
    endTime = TRIM(SUBSTR(@row,18,13))
;