ich kann mit einer CSV-Datei immer nur begrenzt Daten hochladen. Maximal sind daß immer so 2000 - 3000 Datensätze. Meine ganze Datei hat aber 50000 Datensätze. Was kann ich da machen? Selbst wenn man die Datei in 3000 - Datensatz - Dateien zerstüdkelt, ist mir das zu viel Arbeit, da das öfters gemacht werden muß.
Meine ganze Datei hat aber 50000 Datensätze. Was kann ich da machen? Selbst wenn man die Datei in 3000 - Datensatz - Dateien zerstüdkelt, ist mir das zu viel Arbeit, da das öfters gemacht werden muß.
Hat da noch wer eine Idee?
Wilde Vermutung: da ist PHP im Spiel und es schlägt ein Timeout zu. Aber, wie gesagt, ganz wilde Vermutung…
ich lade die Daten mit phppgadmin hoch. Ich klicke auf die Tabelle, dann auf Import. Dort wähle ich als Format CSV aus, gebe noch meine Datei an und dann klicke ich importieren an.
Das klappt wie gesagt mit kleinen Datensäten nicht aber mit der ganzen Datei.
PHP ist da wohl nicht mehr im spiel. Ein Script habe ich gar nicht.
Ich könnte mir auch vorstellen, daß das mit einem Timeout zusammenhängen könnte. Ich habe versucht in der postgresql.conf den AUTHENTICATION_TIMEOUT und den DEADLOCK_TIMEOUT mal hochzusetzen. Danach pgsql neu gestartet, aber immer noch der selbe Fehler.
No server supplied!
Wie kann man den mit copy-Befehelen eine CSV-Datei in eine PGSql - Datenbank kopieren?
Ich könnte mir auch vorstellen, daß das mit einem Timeout zusammenhängen könnte. Kann man das irgendwo einstellen, das man menr zeit hat für den uplaod?
In der Konfig von PHP, siehe oben.
Wie kann man den mit copy-Befehelen eine CSV-Datei in eine PGSql - Datenbank kopieren?
test=*# \h copy
Command: COPY
Description: copy data between a file and a table
Syntax:
COPY tablename [ ( column [, ...] ) ]
FROM { 'filename' | STDIN }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column [, ...] ]
COPY tablename [ ( column [, ...] ) ]
TO { 'filename' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ HEADER ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ HEADER ]
[ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE column [, ...] ]
test=*#
Du hast, wie akretschmer schon richtig sagte, kein PostgreSQL sondern ein PHP Problem. Die Dateien werden so groß, dass Phppgadmin zu lange benötigt, um sie einzulesen. Irgendwann bricht entweder PHP ab oder was wahrscheinlicher ist, dein Browser. Warum? Weil er einfach in der Zeit keine Rückmeldung vom Server bekommt und denkt, da ist was schief gelaufen.
Ich würde dir auch empfehlen, die Daten über eine direkte Verbindung mit psql einzulesen. Dann ersparst du dir den Ärger.