Tabellen "synchronisieren"

10/03/2008 - 07:46 von Tamara Mikes | Report spam
Salü alle zusammen

Ich habe in einer MySQL Datenbank eine Tabelle Artikel mit 50 Feldern.

In einer XML Datei welche von einem total anderen System geliefert wird,
habe ich eine Datei Import.xml. Die Daten werden tàglich neu geliefert und
ich mussŠdarfŠwillŠsoll nun die Daten synchronisieren.

Dazu habe ich mir in der MySQL Datenbank zwei neue Felder angelegt.
MyXMLID(Long) und MyXMLSync (Datum).

Nun denke ich, in drei Schritten vor zu gehen.
1. für neue Datensàtze: Kopiere alles aus dem XML File wenn es in MySQL noch
nicht vorhanden ist. Das denke ich ist mit SELECT und INSERT einfach.
3. Lösche alles in MySQL wenn es in XML nicht mehr da ist. Ist auch mit
SELECT und DELETE einfach.
Aber der Schritt zwei.

2. Wenn die ID beider Tabellen identisch ist und das Datum auf der MySQL
Seite kleiner als heute ist, dann könnte es ein im XML File verànderter
Datensatz sein.
Nun könnte ich diesen natürlich einfach in die MySQL Datenbank schrieben und
alles wàre geritzt. Das würde aber auch bedeuten, dass ich möglicherweise
sinnlose Sàtze kopiere. Irgendwie stelle ich mir sowas vor wie:

For Each Datenfelder in Datensatz,
Wenn MySQL-Feld <> als XML-Feld ist dann kopiere XML-Feld nach MySQL
Feld.
Next

Làsst sich dieser Satz noch irgendwie geschickt mit SQL formulieren?
Habe ich eine ander Technik nicht berücksichtigt welche das einfacher macht?

Vielen Dank für Hinweise
Gruss Tamara
 

Lesen sie die antworten

#1 Peter Fleischer
10/03/2008 - 15:18 | Warnen spam
"Tamara Mikes" schrieb im Newsbeitrag
news:

Nun denke ich, in drei Schritten vor zu gehen.
1. für neue Datensàtze:



Hi Tamara,
zuerst sollte definiert werden, was ist ein neuer Datensatz.

Kopiere alles aus dem XML File wenn es in MySQL noch nicht vorhanden ist.
Das denke ich ist mit SELECT und INSERT einfach.



Wenn du aus dem XML-File ein DataSet làdst und dieses dann mit Merge in ein
Dateset mit den MySql-Daten mit Schlüssel mischst, werden alle nicht
vorhandenene Datensàtze hinzugefüget und die anderen vorhandenen Datensàtze
überschrieben.

3. Lösche alles in MySQL wenn es in XML nicht mehr da ist. Ist auch mit
SELECT und DELETE einfach.



Da musst du beide Tabellen miteinander vergleichen. Dazu wàre wahrscheinlich
der Import der XML-Datei in eine temporàre Tabelle und dann mehrere JOIN am
einfachsten.


Viele Gruesse

Peter

Ähnliche fragen