Select into outfile -> Load data infile -> 1 Datensat mehr ?!?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Select into outfile -> Load data infile -> 1 Datensat mehr ?!?

    Hallo,

    habe ein Problem mit meiner 'Sicherung' der Datensätze:

    Ich Selektiere die Datensätze in eine Datei
    (Select * from tabelle into outfile '.......' FIELDS TERMINATED BY ';')

    Wenn ich nun diese Datei wieder zurückspiele passiert gar nichts wenn die Tabelle nicht vollständig leer ist:
    (LOAD DATA INFILE '/Pfad auf dem Server/datei.txt' INTO TABLE `tabelle` FIELDS TERMINATED BY ';')


    Also setzte ich ein Ignore:

    (LOAD DATA INFILE '/Pfad auf dem Server/datei.txt' IGNORE INTO TABLE `tabelle` FIELDS TERMINATED BY ';')

    Jetzt lädt dieser Befehl alle Datensätze die nicht mehr vorhanden sind in die DB, nur das ich eben ein Datensatz mehr am ende habe! Und zwar einen leeren!
    Kommt wahrscheinlich davon das ich am Ende des letzten Datensatzes ein Trennzeichen habe und SQL das als Trennzeichen zwischen den Datensätzen wertet. Sprich: nach dem letzten Trennzeichen kommt der letzte Datensatz......


    Wie kann ich das nun verhindern ?

    Jemand eine Idee ?

  • #2
    Datei laden, am besten nicht mit file_get_contnts(); sondern mit fopen(): den Dateizeiger auf die letzten paar Bytes setzen und eben das letzte ; abschneiden. Speichern und Query ausführen.

    Oder aber nach dem insert ein DELETE FROM tabelle WHERE beliebige_spalte = '';

    Kommentar

    Lädt...
    X