Bonjour,
je débute en mysql et j'ai besoin d'aide pour une requête. Je viens juste de commencer à apprendre aujourd'hui et je sais à peine faire un select correctement, mais j'ai besoin d'aide sur un problème précis : j'ai besoin de charger des données dans une table 'tbl' depuis un fichier, aussi rapidement que possible.
Voilà comment j'ai créé ma table (les noms ou types sont peu importants et changeront sûrement) :
Voilà un exemple de ligne que je dois récupérer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 CREATE TABLE `tbl`( `unknown1` VARCHAR(255) NULL, `string1` VARCHAR(255) , `string2` VARCHAR(255) , `date1` DATETIME, `string3` CHAR(10) NULL, `integer1` INTEGER NULL, `integer2` INTEGER NULL, `integer3` INTEGER NULL, `integer4` INTEGER NULL, `string4` VARCHAR(255) NULL, `string5` VARCHAR(50) NULL, `string6` VARCHAR(100) NULL, `unknown2` VARCHAR(400) NULL, `date2` DATETIME, `unknown3` VARCHAR(400) NULL, `unknown4` VARCHAR(400) NULL, `unknown5` VARCHAR(400) NULL, `integer4` INTEGER NULL, `integer4` INTEGER NULL, `unknown6` INTEGER NULL, `string7` VARCHAR(400) NULL)
J'ai cherché un peu sur google et j'ai trouvé que ce que je dois utiliser est probablement LOAD DATA INFILE.|USA|25/11/2010|FO|8|50|214|0|EXD|PFBF|Florida||08/05/1980||||0|1||Executive
Voilà ce que j'ai fait :
Est-ce bon ? Puis-je le rendre meilleur/plus rapide ? (j'ai lu qu'il y a des options pour améliorer la rapidité telles que 'compress' ou 'local' ou 'lock', mais je ne suis pas sûr qu'elles sont adaptées à mon problème).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 LOAD DATA INFILE 'donnees.txt' INTO TABLE tbl FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
La date ne sera probablement pas insérée correctement. Elle est au format JJ/MM/AAAA mais il faut AAAA/MM/JJ.
Comment puis-je la convertir ?
Est-il possible d'ignorer par exemple la 8eme colonne de chaque ligne (les champs unknown) pour éviter d'avoir à créer une table temporaire d'où je devrai ensuite extraire les données ?
J'aimerais également changer le nom de ma table 'tbl' en quelque chose comme 'tbl_[date du jour]'. Comment faire pour créer un nom de table qui dépend de la date du jour ?
Merci pour votre aide.
Partager