Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Carregando arquivo .txt delimitado por espaço e largura fixa no mySQL


Estes são o que chamamos de registros de "largura fixa" e LOAD DATA não funciona bem com eles. Opções:
  1. Limpe os dados no Excel primeiro ou
  2. Carregue os dados em uma tabela temporária com apenas 1 coluna, colocando uma linha de texto inteira nessa coluna. Então você pode usar SUBSTR() e TRIM() para dividir as colunas necessárias na tabela final.
  3. Ou com variáveis ​​de usuário (@row) você pode fazer tudo dentro da instrução 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))
;