CSV-Datei hochladen

Hallo,

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ß.

Hat da noch wer eine Idee?



Gruß Nixdorf

Gut, aber woher sollen wir wissen, warum du nur so 2000-3000 Datensätze hochladen kannst? Gibts da einen Grund oder eine Fehlermeldung?

Ansonsten wird man dir nur schlecht helfen können …

Hallo,

da kommt leider nur:

No server supplied!


Und das kann ja nicht sein, mit den kleineren Dateien mache ich ja genau das selbe.


Gruß nixdorf

Nein. Da tut was flasch.

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…


Andreas


Gruß Nixdorf[/QUOTE]

Ja, wo genau passiert das? Kannst du dir vorstellen, wie wir gerade unsere Glaskugeln polieren, aber nichts drin erkennen können? :wink:

Was machst Du genau wie?
Ich bezweifle, daß eben dieser Fehler kommt, wenn Du mit psql mit COPY arbeitest. Schon probiert?


Andreas

Hallo,

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?


Gruß Nixdorf

PHP ist da sehr wohl im Spiel, vermute ich.
php script timeout - Google-Suche

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=*#

Andreas

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.