Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

noch ein totaler Anfänger - Daten in Datenbank hochladen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von jan08, 15 April 2013.

  1. jan08

    jan08 Neuer Benutzer

    Hallo,

    ich habe bis gestern mit Access gearbeitet, aber bin dort an die Grenzen gestoßen. Kann mir jemand sagen, wie ich möglichst einfach CSV- oder Excel-Dateien in eine Tabelle hochladen kann? Die erste Zeile enthält bereits die Feldnamen. Bei Access geht es ganz einfach. Das System rät die Feldeigenschaften und lädt selbstständig hoch. Leider bricht es immer wieder ab. Wenn es bei mySQL nicht so einfach geht: Welche Schritte genau sind notwendig? Möglichst idiotensicher geschreiben, welche Tools es dafür gibt und was genau man aufrufen muss.

    Meine Tabelle hat 240 Felder, die mit Semikolon getrennt sind, und 1.600.000 Zeilen. Im Schnitt sind es 10.000 Zeichen pro Datensatz. Die Daten sind aktuell in insgesamt 16 CSV-Dateien zu je 100.000 Zeilen verteilt.

    Viele Grüße

    Janny

    P. S. Ich habe mySQL auf WinXP installiert und will meinen Laptop als Client und Server gleichzeitig verwenden.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Nun ja, geht vielleicht einfach, geht aber letztendlich doch nicht. Wo ist da der Sinn?

    Schau ins Handbuch bzgl. LOAD DATA. Damit kann man CSV-Zeugs einlesen.

    Die Doku zu PostgreSQL sagt zum Thema:
    Code:
    test=# \h copy
    Command:     COPY
    Description: copy data between a file and a table
    Syntax:
    COPY table_name [ ( column_name [, ...] ) ]
        FROM { 'filename' | STDIN }
        [ [ WITH ] ( option [, ...] ) ]
    
    COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
        TO { 'filename' | STDOUT }
        [ [ WITH ] ( option [, ...] ) ]
    
    where option can be one of:
    
        FORMAT format_name
        OIDS [ boolean ]
        DELIMITER 'delimiter_character'
        NULL 'null_string'
        HEADER [ boolean ]
        QUOTE 'quote_character'
        ESCAPE 'escape_character'
        FORCE_QUOTE { ( column_name [, ...] ) | * }
        FORCE_NOT_NULL ( column_name [, ...] ) |
        ENCODING 'encoding_name'
    
    So ähnlich könnte es in MySQL sein, das nutze ich aber nicht, aus vielen Gründen.

    240 Felder sind sehr wahrscheinlich ein deutlicher Hinweis auf völlig krankes Design. Das klingt nach völliger Mißachtung der Normalisierungsregeln. Dein Spaß an einer DB-Lösung wird sich sehr wahrscheinlich in Grenzen halten.

    Andreas
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden