Mysql
 sql >> Base de données >  >> RDS >> Mysql

Chargement d'un fichier .txt à largeur fixe et délimité par des espaces dans mySQL

Ce sont ce que nous appelons des enregistrements "à largeur fixe" et LOAD DATA ne fonctionne pas bien avec eux. Choix :

  1. Nettoyez d'abord les données dans Excel, ou
  2. Chargez les données dans une table temporaire avec une seule colonne, en insérant une ligne de texte entière dans cette colonne. Ensuite, vous pouvez utiliser SUBSTR() et TRIM() pour découper les colonnes dont vous avez besoin dans le tableau final.
  3. Ou avec les variables utilisateur (@row), vous pouvez tout faire dans l'instruction 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))
;