Toon posts:

[MySQL] Load data local infile - niet meer dan 127 rijen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil heel graag een door Excel gegenereerde comma seperated file in een tabel in mijn MySQL-database importeren. Dit lukt helaas slechts deels.

In eerste instantie ben ik aan de gang geweest via de MySQL-prompt door middel van een SSH-shell op de server. Hiervoor gebruikte ik de volgende syntax:

code:
1
2
3
4
5
LOAD DATA LOCAL INFILE 'hc.csv' 
INTO TABLE hcdata 
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\r\n' 
(artiest,titel);


MySQL gaat opzoek naar het bestand hc.csv en vindt 'm, omdat ik 'm naar de juiste directory heb geüpload. Vervolgens gaat-ie bezig met importeren, met als uiteindelijk resultaat dat hij lang niet alles importeert. Het csv-bestand bestaat uit ruim 3400 regels, en er ontstaan bijna net zoveel warnings

Uiteindelijk probeerde ik de PHPMySQLAdmin. Door middel van "Invoegen tekstbestanden in tabel" (sorry, heb hier alleen de NL-versie :) ), probeer ik dan hc.csv vanaf mijn PC te uploaden. In principe gebruik ik dezelfde regels als hierboven (gescheiden door ';', afbreken met '\r\n', en kolomnamen 'artiest,titel'. De syntax die PHPMySQLAdmin hiermee genereert:

code:
1
2
3
4
5
6
7
LOAD DATA LOCAL INFILE '/tmp/phpuaoWKe'
INTO TABLE `hcdata`
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
(`artiest`, `titel`)


Dit zorgt ervoor dat er maar 127 rijen worden ingevoerd.

Ik krijg een beetje het idee dat je met LOAD DATA niet meer dan 127 rijen kunt invoegen. Is dat zo? Hoe zorg ik ervoor dat die andere 3000+ rijen uit dat bestand ook worden ingelezen? Zou me een hoop tijd schelen. :)

Ben benieuwd! :Y)

[ Voor 7% gewijzigd door Verwijderd op 16-03-2004 10:43 ]


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 27-05 14:30

VonAalscht

Raaaar

Ik kan je in ieder geval zeggen dat je zeker meer dan 127 rijen in kan voegen :)

Verwijderd

Topicstarter
Kan het te maken hebben met 'speciale tekens' als & ?

  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
Ik weet zeker dat je meer dan 127 rijen kan importeren.
Je zegt dat je warnings krijgt, wanneer je met ssh en mysql het CSV bestand importeert. Kan je aangeven welke?
If the LOCAL keyword is specified, it is interpreted with respect to the client end of the connection:
If LOCAL is specified, the file is read by the client program on the client host and sent to the server.
If LOCAL is not specified, the file must be located on the server host and is read directly by the server.

LOCAL is available in MySQL Version 3.22.6 or later.
http://www.mysql.com/doc/en/LOAD_DATA.html

Als ik het zo lees, heb je op de server LOCAL helemaal niet nodig in je SQL statement :)

Dingen die ik altijd tegen kom in dit soort gevallen is, dat er meestal niet goed ge-slashed en ge-quoted wordt.

Pascal


  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 27-05 08:46
Hoe ziet je tabel er uit? Waarschijnlijk heb je de grootte van 1 van je velden te krap gemaakt.

zie bv. [rml][ MySQL] Heel vaag auto_increment probleem[/rml] of phpMyAdmin en 127 records, please help!

[ Voor 41% gewijzigd door Jelle Niemantsverdriet op 16-03-2004 10:59 . Reden: links toegevoegd ]


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 31-03 15:20
Klinkt als een primary key met als type TINYINT. Maak daar INT van.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
Hmm... dat had ik ook kunnen verzinnen :(, een signed tiny-int heeft idd een max primary key van 127... dom dom dom

Pascal


Verwijderd

Topicstarter
Iedereen bedankt voor de reacties! Ik voel me idd erg dom nu, want het ID-veld (auto_increment) was idd van het type Tinyint, en die gaat niet verder dan 127... :(

Tinyint is nu Int en daarom werkt het perfect! :d

Iedereen nogmaals bedankt voor de reacties; ben erg blij dat dit in enkele minuten opgelost kon worden! :Y) Cheers!
Pagina: 1