Datenimport in bestehende Tabelle
Moses
- datenbank
0 Vinzenz Mai0 Franz
Hallo,
habe folgendes Problem:
Habe eine bestehende Datenbank (MySql 4.?? / PhPmysql Version??) und soll nun in einer Tabelle die Inhalte von 4 Spalten ändern. Dafür habe ich eine Excel Liste bekommen mit den neuen Inhalten.
Es gibt eine eindeutige ID für jeden Eintrag in der Tabelle.
jetzt kann ich natürlich manuelle schreiben:
update tabelle set feld2='neuer_Inhalt1', feld3='neuer_inhalt2' where id = '9'
etc., etc.
aber es sind ein paar Tausend Datensätze und wenn ich das manuell mache bin ich wohl ein paar Tage beschäftigt und meine Nerven am Ende ;-)
Habe mir schon überlegt die Tabelle zu löschen und komplett neu aufzuspielen, da das ganze aber online steht und von diversen Leuten bearbeitet wird finde ich diese Lösung nicht so wirklich gut, da ich Angst habe, dass in den letzten Tagen eventl. neue Einträge dazugekommen sind (auch wenn mir versprochen wurde, dass keine neuen Einträge gemacht werden bis ich das Update aufspiele - aber ich kenne die Leute mit denen ich da arbeite "ach,ich dachte das macht nichts...") und somit Datensätze und Zuordnungen verloren gehen bzw. nicht mehr eindeutig sind.
Daher die Frage gibt es eine automatisierte Lösung, dass man nur einzelne Spalten einer Tabelle updated?
Die Tabelle hat ungefähr 10 Spalten, und in 5 davon sollen die Inhalte geändert werden.
Hoffe ich habe mich verständlich ausgedrückt und ihr könnt mir helfen.
Danke schon mal,
Moses
Hallo Moses,
Habe eine bestehende Datenbank (MySql 4.?? / PhPmysql Version??) und soll nun in einer Tabelle die Inhalte von 4 Spalten ändern. Dafür habe ich eine Excel Liste bekommen mit den neuen Inhalten.
Es gibt eine eindeutige ID für jeden Eintrag in der Tabelle.
a) Erstelle ein Backup der Zieltabelle [*]
b) Exportiere Deine Excel-Daten in eine CSV-Datei
(achte auf eine passende Zeichenkodierung)
c) Importiere die CSV-Datei in eine neue Tabelle
d) Führe das Update mit der Multiple-Table-Syntax
und einem INNER JOIN der beiden Tabellen durch
Freundliche Grüße
Vinzenz
[*] sollte vor Schritt d) erfolgen :-)
Hallo Moses,
a) Erstelle ein Backup der Zieltabelle [*]
b) Exportiere Deine Excel-Daten in eine CSV-Datei
(achte auf eine passende Zeichenkodierung)
c) Importiere die CSV-Datei in eine neue Tabelle
d) Führe das Update mit der Multiple-Table-Syntax
und einem INNER JOIN der beiden Tabellen durch
Hallo Vinzenz,
mal sehen ob ich das richtig verstehe...
UPDATE orig_tabelle o, neue_tabelle n set o.feld1=n.feld1, o.feld3=n.feld3, o.feld5=n.feld5 where o.id=n.id
mmmh ich glaub das muss ich nochmal lesen (stehe mit den joins immer noch auf Kriegsfuss daher das obige)
Grüße,
Moses
echo $begrüßung;
UPDATE orig_tabelle o, neue_tabelle n set o.feld1=n.feld1, o.feld3=n.feld3, o.feld5=n.feld5 where o.id=n.id
mmmh ich glaub das muss ich nochmal lesen (stehe mit den joins immer noch auf Kriegsfuss daher das obige)
Wenn du dir nicht sicher bist, probier den Join zunächst mit einem SELECT aus. Das verunstaltet dir deine Daten nicht und du kannst die richtige Verknüpfung überprüfen. Alternativ arbeite an mit einer Kopie der Daten (aber nicht mit der Sicherheitskopie).
echo "$verabschiedung $name";
Danke euch,
hab es hinbekommen!
Grüße,
Moses
Hallo,
habe folgendes Problem:
Habe eine bestehende Datenbank (MySql 4.?? / PhPmysql Version??) und soll nun in einer Tabelle die Inhalte von 4 Spalten ändern. Dafür habe ich eine Excel Liste bekommen mit den neuen Inhalten.
Es gibt eine eindeutige ID für jeden Eintrag in der Tabelle.
jetzt kann ich natürlich manuelle schreiben:
update tabelle set feld2='neuer_Inhalt1', feld3='neuer_inhalt2' where id = '9'
etc., etc.
aber es sind ein paar Tausend Datensätze und wenn ich das manuell mache bin ich wohl ein paar Tage beschäftigt und meine Nerven am Ende ;-)
»»
Hallo Moses
Du könntest die udpdate-Statments in Excel automatisch erstellen, entweder per Makro oder einfacher, indem Du sie per Formel zusammensetzt: ="update tabelle set feld2=" & a1 & ", feld2=" & b1 & ", feld3=" c1 & ' where id =" & '" & d1 & "';"
fG
Franz
Hallo Franz,
Du könntest die udpdate-Statments in Excel automatisch erstellen, entweder per Makro oder einfacher, indem Du sie per Formel zusammensetzt: ="update tabelle set feld2=" & a1 & ", feld2=" & b1 & ", feld3=" c1 & ' where id =" & '" & d1 & "';"
dabei ist noch zu berücksichtigen, dass Werte, die aus einer Zeichenkette bestehen, in Anführungszeichen zu packen sind und es Zeichen gibt, die für die SQL-Schnittstelle behandelt werden müssen. Zum Beispiel könnte in einer Zelle die Zeichenkette
Hab's gesehen.
stehen.
Freundliche Grüße
Vinzenz