Hallo zusammen,
Im Rahmen meiner Arbeit muss ich Energiedatenmessungen für verschiedene Anlage aus einem csv-File in eine Datenbank importieren. Das funktioniert soweit auch ganz gut mit dem Befehl
mysql_query("LOAD DATA LOCAL INFILE '".$_FILES['file']['name']."'
INTO TABLE ".$tabellenname." FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' (s1,s2,s3,s4,s5)")
Nun kann es aber passieren, dass Daten nachträglich zu einer bereits existierende Tabelle hinzugefügt werden müssen, allerdings in einer neuen Spalte. Diese Daten sind ebenfalls in csv-Dateien gespeichert. Wenn ich nun dieses File in neu erstelle Spalten (mache ich mit ALTER table ADD column) der Tabelle importieren möchte (hier benutze ich auch den oben genannten Befehl), werden die Daten zwar in die neu generierten Spalten geschrieben, aber erst unterhalb der bestehenden Einträge.
Die Tabelle sieht also so aus:
Alte Spalte Neue Spalte
123 NULL
345 NULL
678 NULL
NULL 901
NULL 234
NULL 567
Ich möchte aber, dass sie so aussieht:
Alte Spalte Neue Spalte
123 901
345 234
678 567
Ich habe auch schon versucht, die neuen Daten in eine andere Tabelle zu laden und von dort aus die Daten zu kopieren, kam aber zum gleichen Ergebnis.
Ich weiß, dass meine Anwendung den Sinn einer relationalen Datenbank etwas verfehlt, trotzdem:
Kann mir jemand weiterhelfen?
Würde es evtl helfen, einen Primärschlüssel einzufügen?
Wenn ja, gibt es einen Befehl, mit dem ich mehrere Daten gesammelt in eine Spalte übertragen kann, also ugf. so:
INSERT INTO tabelle (neue spalte) ab Primärschlüssel = 1
SELECT * from anderertabelle
Vielen Dank schonmal!
Im Rahmen meiner Arbeit muss ich Energiedatenmessungen für verschiedene Anlage aus einem csv-File in eine Datenbank importieren. Das funktioniert soweit auch ganz gut mit dem Befehl
mysql_query("LOAD DATA LOCAL INFILE '".$_FILES['file']['name']."'
INTO TABLE ".$tabellenname." FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n' (s1,s2,s3,s4,s5)")
Nun kann es aber passieren, dass Daten nachträglich zu einer bereits existierende Tabelle hinzugefügt werden müssen, allerdings in einer neuen Spalte. Diese Daten sind ebenfalls in csv-Dateien gespeichert. Wenn ich nun dieses File in neu erstelle Spalten (mache ich mit ALTER table ADD column) der Tabelle importieren möchte (hier benutze ich auch den oben genannten Befehl), werden die Daten zwar in die neu generierten Spalten geschrieben, aber erst unterhalb der bestehenden Einträge.
Die Tabelle sieht also so aus:
Alte Spalte Neue Spalte
123 NULL
345 NULL
678 NULL
NULL 901
NULL 234
NULL 567
Ich möchte aber, dass sie so aussieht:
Alte Spalte Neue Spalte
123 901
345 234
678 567
Ich habe auch schon versucht, die neuen Daten in eine andere Tabelle zu laden und von dort aus die Daten zu kopieren, kam aber zum gleichen Ergebnis.
Ich weiß, dass meine Anwendung den Sinn einer relationalen Datenbank etwas verfehlt, trotzdem:
Kann mir jemand weiterhelfen?
Würde es evtl helfen, einen Primärschlüssel einzufügen?
Wenn ja, gibt es einen Befehl, mit dem ich mehrere Daten gesammelt in eine Spalte übertragen kann, also ugf. so:
INSERT INTO tabelle (neue spalte) ab Primärschlüssel = 1
SELECT * from anderertabelle
Vielen Dank schonmal!

Kommentar