Kurt G wrote:
> I fortsættelse af mit forrige indlæg fra 20-10 har jeg nu fået mySQL op at
> køre efter anvisningen fra Martin.
Jamen det var da dejligt at høre :)
>>Du kan i query browser, vælge import af fil, og der kan du så vælge din
>>CSV fil.
>
> HER KNIBER DET
> Jeg kan ikke finde noget sted, der tillader import af tekstfiler, eller
> import i det hele taget.
> SQL brovseren er version 1.2.4.
>
> Den fil, som jeg gerne vil importere, er en flad *.txt-fil med semikolon som
> seperator.
>
> Kan jeg med en Query læse en tekstfil og sætte de enkelte linier ind som
> poster?
Ja - Godt spørgsmål!
De har godt nok lavet query browser om siden sidst jeg brugte det.
Så vi må vist lige lave det i ren SQL istedet.
Først så skal vi have oprettet en tabel.
Her der gælder det om at vide hvor mange og hvilke kolonner der skal
være i tabellen.
Vi starter med en ganske simpel eksempel
4 kolonner
ID: 1 int(11) auto increment med primær nøgle
Test1: varchar(255) [tekstfelt med max 255 tegn]
Test2: varchar(255)
Tid: datetime [mm-dd-yyyy tt:mm:ss]
Denne laver man på denne måde:
CREATE TABLE test (
ID INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
Test1 VARCHAR( 255 ) NOT NULL ,
Test2 VARCHAR( 255 ) NOT NULL ,
Tid DATETIME NOT NULL
);
Smid den ind i det hvide felt i query browser - og tryk på execute, og
bummelum du har nu en tabel :)
Men nu får du måske en fejl... Database ikke valgt - så før alt det, så
skal du lige smide en
USE <database>;
ind
Nu skal du selvfølgelig også lave en tabel som passer til det du skal bruge.
Lidt forskellige datatyper som kan bruges findes altid i manualen
<
http://dev.mysql.com/doc/refman/5.0/en/data-types.html>
Nu skal vi så til import af csv filer.
Først så vil jeg da lige anbefale dig at lære manualen* (den er svær at
forstå, men kig lidt på den og få en fornemmelse af hvad der sker
nedenstående)
LOAD DATA INFILE "<din fil>"
INTO TABLE <din tabel>
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY ""
LINES TERMINATED BY "\\r\\n";'
I sidste linje, der er står \\r\\n i virkeligheden der betyder det
faktisk kun \r\n, men da \ er et specieltegn, så skal det lige escapes,
og escape karakteren i MySQL er standard \ - Derfor \\r\\n.
> Jeg vil nødigt til at skrive det ind selv, der er knap 42.000 poster!
Kan jeg godt forstå - men lav en fil med måske 100 poster - så går det
lidt hurtigere i test perioden :)
* Manual: <
http://dev.mysql.com/doc/refman/5.0/en/load-data.html>