- Beiträge: 68
Vorhandene Daten vor dem Import löschen
- Andreas Schauerte
- Autor
- Offline
- Benutzer
Weniger
Mehr
8 Jahre 1 Monat her #2892
von Andreas Schauerte
Vorhandene Daten vor dem Import löschen wurde erstellt von Andreas Schauerte
Hallo,
ich möchte Nachts einen Import von einer umfangreichen ODBC-Quelle zu MySQL starten, bei welchem auf der WRITE-Seite (MySQL) vorher alles gelöscht wird, was älter als ein Jahr ist. Hintergrund ist, dass auf der READ-Seite auch Daten gelöscht werden, welche dann auf der WRITE-Seite bestehen bleiben würden. (Vielleicht gibt es auch eine bessere Lösung für dieses Problem)
Nun werden aber Daten gelöscht und nicht wieder befüllt. Was mache ich verkehrt? Ich lösche auf der WRITE-Seite beim Start per SQL-Heater Daten bis 364 Tage rückwirkend und lese diese per Select Kommando auf der READ-Seite ein.
ich möchte Nachts einen Import von einer umfangreichen ODBC-Quelle zu MySQL starten, bei welchem auf der WRITE-Seite (MySQL) vorher alles gelöscht wird, was älter als ein Jahr ist. Hintergrund ist, dass auf der READ-Seite auch Daten gelöscht werden, welche dann auf der WRITE-Seite bestehen bleiben würden. (Vielleicht gibt es auch eine bessere Lösung für dieses Problem)
Nun werden aber Daten gelöscht und nicht wieder befüllt. Was mache ich verkehrt? Ich lösche auf der WRITE-Seite beim Start per SQL-Heater Daten bis 364 Tage rückwirkend und lese diese per Select Kommando auf der READ-Seite ein.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
8 Jahre 1 Monat her #2893
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Vorhandene Daten vor dem Import löschen
Hallo Herr Schauerte,
Sie haben im SQL Heater den DATEDIFF falsch formuliert!
Ihre Angabe (Falsch)
DELETE FROM positionen WHERE DATEDIFF(pos_erstellt, CURDATE()) <= 364
Richtig wäre
DELETE FROM positionen WHERE DATEDIFF(CURDATE(), pos_erstellt) <= 364
Das Problem bei Ihrer Angabe ist, dass die Rückgabe vom MySQL DATEDIFF minus Werte beinhaltet und ihre Abfrage so alle Datensätze selektiert bzw. löscht außer sie wären in der Zukunft.
Sie können den Delete sehr einfach Testen indem Sie Ihn einmal z.B. in der MySQL Workbench als SELECT ausführen lassen.
z.B. SELECT * positionen WHERE DATEDIFF(CURDATE(), pos_erstellt) <= 364
So sehen sie ganz einfach welche Datensätze gelöscht werden würden.
Sie haben im SQL Heater den DATEDIFF falsch formuliert!
Ihre Angabe (Falsch)
DELETE FROM positionen WHERE DATEDIFF(pos_erstellt, CURDATE()) <= 364
Richtig wäre
DELETE FROM positionen WHERE DATEDIFF(CURDATE(), pos_erstellt) <= 364
Das Problem bei Ihrer Angabe ist, dass die Rückgabe vom MySQL DATEDIFF minus Werte beinhaltet und ihre Abfrage so alle Datensätze selektiert bzw. löscht außer sie wären in der Zukunft.
Sie können den Delete sehr einfach Testen indem Sie Ihn einmal z.B. in der MySQL Workbench als SELECT ausführen lassen.
z.B. SELECT * positionen WHERE DATEDIFF(CURDATE(), pos_erstellt) <= 364
So sehen sie ganz einfach welche Datensätze gelöscht werden würden.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas Schauerte
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 68
8 Jahre 1 Monat her #2895
von Andreas Schauerte
Andreas Schauerte antwortete auf Vorhandene Daten vor dem Import löschen
Guten Morgen,
oje, da hätte ich auch selbst drauf kommen können. Vielen Dank für die Ausführliche Antwort!
Mfg A. Schauerte
oje, da hätte ich auch selbst drauf kommen können. Vielen Dank für die Ausführliche Antwort!
Mfg A. Schauerte
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.261 Sekunden