DB-Tabelle bei Laufzeit kopieren
-
Hausaufgaben sind das bei weitem nicht ...
Hab bisher keinen Code, da ich mir vorher über die Logik/das Vorgehen Gedanken machen möchten.
Das ganze soll quasi ein ERP-System ergeben, wo ich besagte Artikelnummern aus einer anderen DB brauche.
Die Daten einmalig an einen gemeinsamen Ort zu bekommen ist schon klar.
Mein Problem ist, wie ich es steuern kann, dass wenn ein neuer Artikel angelegt wird, diese Daten dann automatisch und zeitnah in die andere DB kommen?!
Das soll natürlich so geschehen, dass die Nutzer nichts davon mitbekommen.Wenn mein ERP-System auf C# aufgebaut ist, sollte dieses Problem doch auch damit gelöst werden? Oder muss ich wirklich an ein DB Forum wenden?
-
Also ich frag mal anders, die Daten die eingepflegt werden, werden die auch über eine C# Anwendung eingepflegt?Weil dann könnte man ja gleichzeitig die andere DB mit füllen.
-
Nein, die werden über ein CAD-Programm eingepflegt.
-
Stimmt, stand ja ganz oben, hatte ich ganz vergessen.
Und wenn du gleichzeitig die Daten mit in die andere DB einpflegen lässt?Leider bin ich nich so versiert in dem Thema, wie man über 2 Tabellen eine Beziehung herstellt.
-
Kannst Du die beiden DB's zusammenlegen oder müssen sie getrennt sein?
Alternativ kannst Du mal nach mysql und replication googlen, vllt gibt es ja Systeme die das automatisch erledigen.
-
An dem Programm können wir nichts ändern, d.h. es gibt keine Möglichkeit die Daten gleichzeitig in beide DBs eintragen zu lassen.
Und die Datenbanken müssen auch getrennt bleiben.Könnte man anhand eines TIMESTAMP Felds in der Tabelle nach aktuellen (=neuen) Datensätzen suchen und diese dann einzeln in die andere DB kopieren lassen?
Wobei ich dann wohl eine Funktion bräuchte, die permanent prüft? Das würde wohl zuviel Speicher verbrauchen?
-
Bergfloh schrieb:
Könnte man anhand eines TIMESTAMP Felds in der Tabelle nach aktuellen (=neuen) Datensätzen suchen und diese dann einzeln in die andere DB kopieren lassen?
Wobei ich dann wohl eine Funktion bräuchte, die permanent prüft? Das würde wohl zuviel Speicher verbrauchen?Ich schreibe es nochmal: Alternativ kannst Du mal nach mysql und replication googlen, vllt gibt es ja Systeme die das automatisch erledigen.
-
Warum kam noch nicht das Stichwort 'Trigger'?
Das ist doch wohl der Anwendungsfall schlichthin oder hab ich irgendwas falsch verstanden?
-
Könnte man anhand eines TIMESTAMP Felds in der Tabelle nach aktuellen (=neuen) Datensätzen suchen und diese dann einzeln in die andere DB kopieren lassen?
Ja, das ginge sicher. Man kann bei MSSQL z.B. einer Datumsspalte den Defaultwert "getdate()" geben, und bekommt so das Einfügedatum, egal ob das Programm es unterstützt oder nicht.
p.S.: sehe gerade erst dass du MySQL verwendest. Müsstest du gucken ob MySQL das auch kann. Aber siehe unten, das geht mit MySQL ziemlich sicher auch.Wobei ich dann wohl eine Funktion bräuchte, die permanent prüft? Das würde wohl zuviel Speicher verbrauchen?
Das Problem sehe ich nicht. Index drauf, und fertig.
Wenn dann würde ich aber eher eine "ist_schon_kopiert" Spalte machen, wo per Default 0 drin steht, und der Kopier-Job dann eine 1 reinschreibt.Jockelx schrieb:
Warum kam noch nicht das Stichwort 'Trigger'?
Das ist doch wohl der Anwendungsfall schlichthin oder hab ich irgendwas falsch verstanden?Gute Frage
Weiss ich auch nicht.
Klar kann man das halbwegs elegant mit Triggern lösen, bin ich ganz deiner Meinung.
-
Das mit dem Trigger hört sich gut an, eigentlich genau das was ich suche!
Vielen Dank für Eure Hilfe! Werde es damit mal versuchen!