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

SELECT INTO OUTFILE erzeugt keine Datei

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von zachy, 10 Februar 2013.

  1. zachy

    zachy Aktiver Benutzer

    MySQL-Version: MySQL 5.5
    Betriebssystem: Windows 7 Prof 64 Bit

    Hallo Community,

    ich möchte eine Tabelle aus einem MySQL-Server in eine CSV-Datei schreiben. Leider erzeugt der Befehl SELECT INTO OUTFILE keine CSV-Datei.

    Code:
    SELECT * INTO OUTFILE
    'C:\Users\Benutzername\Documents\export.csv'
    FIELDS TERMINATED BY ';'
    LINES TERMINATED BY '\r\n'
    FROM tabelle;
    Server und Client befinden sich auf demselben Rechner. Meiner Meinung nach ist der Befehl korrekt. Nur kann ich unter dem angegebenen Verzeichnis wie gesagt die CSV-Datei export.csv nicht finden.

    Wo liegt der Fehler?

    Viele Grüße
    zachy
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Die Syntax schaut mir arg falsch aus, soweit ich weiß gehört das INTO OUTFILE an das Ende Befehls und nicht zwischen Spaltenliste des Selects (hier *) und Tablename.
    http://dev.mysql.com/doc/refman/5.1/de/select.html

    Eigentlich sollte Dir MySQL eine passende Fehlermeldung entgegen werfen ...

    Andreas
     
  3. zachy

    zachy Aktiver Benutzer

    Hallo Andreas,

    das MySQL-Referenzhandbuch spricht von der gleichen Synatx, die ich auch verwendet habe:

    Demnach muss das INTO OUTFILE doch zwischen die Spaltenliste des SELECT-Befehls und den Tabellenname.

    Gruß zachy
     
  4. akretschmer

    akretschmer Datenbank-Guru


    Hrm. Soweit hatte ich nicht gelesen, ich hatte mich an der Syntaxdarstellung gleich am Anfang orientiert.

    Nun, vielleicht fehlt Dir das FILE-Recht, oder aber Schreibrechte in dem Ordner. MySQL und Windows, ...


    Andreas
     
  5. zachy

    zachy Aktiver Benutzer

    Nein, daran kann es nicht liegen. In Windows bin als Administrator angemeldet, in MySQL als Root.

    Es ist doch aber seltsam, dass keine Fehlermeldung ausgeworfen wird. Der Befehl wird ja erfolgreich ausgeführt, nur ist kein Ergebnis sichtbar.
     
  6. akretschmer

    akretschmer Datenbank-Guru


    Du sagts 'erfolgreich'. So etwa:

    Code:
    mysql> select * into outfile 'bla.csv' from bla;
    Query OK, 2 rows affected (0.02 sec)
    
     
  7. zachy

    zachy Aktiver Benutzer

    Ja absolut die Meldung lautet:
    Code:
    Query OK, 5 rows affected (0.00 sec)
     
  8. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Ich kenne mich mit Mysql nicht besonders gut aus, aber ich denk mir das könnte ev. auch an der Pfadangabe mit \ liegen? Verwende doch mal probeweise das unter Linux/Unix übliche / statt dem Windows-üblichen \
    Oder nimm probeweise etwas ohne Pfadangabe also nur datei.csv

    So, hab jetzt auch die Bestätigung dafür im Handbuch gefunden:
    http://dev.mysql.com/doc/refman/5.1/de/load-data.html

    "Windows-Pfadnamen müssen unter Verwendung von Schrägstrichen (statt Backslashs) angegeben werden. Wenn Sie Backslashs (umgekehrte Schrägstriche) verwenden, müssen Sie sie doppelt angeben."
     
  9. akretschmer

    akretschmer Datenbank-Guru

    MySQL beim Lügen erwischt? ;-)

    Siehe Margit, mir war auch so, sie war aber schneller.

    Andreas
     
  10. zachy

    zachy Aktiver Benutzer

    Hallo Margit,

    vielen Dank, genau das war es! ;)

    Ich habe statt Backslashes einfach Schrägstriche verwendet.
     
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