Mehrere Spalten einer MySQL Tabelle zusammenführen und in eine andere Spalte, selbe Tabelle übertragen
Ziel ist es in einer MySQL Tabelle "QM" den Inhalt der Spalten Name, Geprüft am und Status zeilenweise zusammenzuführen, getrennt durch "," und diese Kombination in die Spalte "Historie" der gleichen Tabelle ebenfalls jeweils in die richtige Zeile zu übertragen.
Eindeutiges Merkmal der einzelnen Zeilen ist der Wert in der Spalte "DocID".
Das Script soll mehrmals täglich ausgeführt werden und dabei prüfen ob es seit dem letzten Lauf neue Einträge in den Spalten Name, Geprüft am und Status gibt und diese wenn ja in der Spalte Historie wieder als Kombination zeilenweise ergänzen.
Die Spalte Historie ist in unserem Fall ein Bemerkungsfeld und läßt das hinzufügen neuer Einträge zu.
Wäre für jede Hilfe sehr dankbar, habe dies als Aufgabe bekommen und habe auer meinen Vorstellungen wie es werden könnte keinen Plan zur Umsetzung!
Vorab schon mal vielen Dank für eure Bemühungen.
Eindeutiges Merkmal der einzelnen Zeilen ist der Wert in der Spalte "DocID".
Das Script soll mehrmals täglich ausgeführt werden und dabei prüfen ob es seit dem letzten Lauf neue Einträge in den Spalten Name, Geprüft am und Status gibt und diese wenn ja in der Spalte Historie wieder als Kombination zeilenweise ergänzen.
Die Spalte Historie ist in unserem Fall ein Bemerkungsfeld und läßt das hinzufügen neuer Einträge zu.
Wäre für jede Hilfe sehr dankbar, habe dies als Aufgabe bekommen und habe auer meinen Vorstellungen wie es werden könnte keinen Plan zur Umsetzung!
Vorab schon mal vielen Dank für eure Bemühungen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 217548
Url: https://administrator.de/forum/mehrere-spalten-einer-mysql-tabelle-zusammenfuehren-und-in-eine-andere-spalte-selbe-tabelle-uebertragen-217548.html
Ausgedruckt am: 20.04.2025 um 18:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
darf ich einen andern Ansatz vorschlagen? Der von dir genannte erscheint mir mit der regelmäßigen Ausführung nicht sehr performant - und vor allem nicht sehr sicher: Die Nutzer werden sich darauf verlassen, dass die Historie vollständig ist, das kannst du aber mit einer zeitgesteuerten Ausführung nicht sicherstellen. Bestimmt wird es Fälle geben, wo zwei Updates hintereinander ausgeführt werden, ohne dass dazwischen das Skript lief -> Die Lösung ist eine ereignisgesteuerte Ausführung, die bei jedem Update der Spalte Status automatisch die Historie ergänzt. Das Stichwort dazu nennt sich Trigger. Gebe das doch mal in deine präferierte Suchmaschine ein (oder schaue einfach in der MySQL-Referenz).
Grüße
Filipp
darf ich einen andern Ansatz vorschlagen? Der von dir genannte erscheint mir mit der regelmäßigen Ausführung nicht sehr performant - und vor allem nicht sehr sicher: Die Nutzer werden sich darauf verlassen, dass die Historie vollständig ist, das kannst du aber mit einer zeitgesteuerten Ausführung nicht sicherstellen. Bestimmt wird es Fälle geben, wo zwei Updates hintereinander ausgeführt werden, ohne dass dazwischen das Skript lief -> Die Lösung ist eine ereignisgesteuerte Ausführung, die bei jedem Update der Spalte Status automatisch die Historie ergänzt. Das Stichwort dazu nennt sich Trigger. Gebe das doch mal in deine präferierte Suchmaschine ein (oder schaue einfach in der MySQL-Referenz).
Grüße
Filipp
Moin dirk.dietze,
die deutschen Seiten des mySQL-Referenzhandbuchs (die ersten beiden Fundstellen bei "mysql trigger") bringen Syntax und Beispiele in verständlicher oder, um es deutlicher zu formulieren, in einer für mySQL-Neulinge zumutbarer Form.
Bitte mach zumindest einen ersten Gehversuch eigenständig, denn so wie ich es gelesen habe, hast du die DB jetzt in deiner Verantwortung.
Bei Problemen steht hier Hilfe bereit, aber schreiben werde ich die Trigger dir nicht.
Überleg dir, ob du nur einen Trigger BEFORE UPDATE haben willst, oder auch schon einen BEFORE INSERT-Trigger, der schon beim Anlegen irgendeinen Text "Satz angelegt von Heinz am 17.09,2013, Status XY" erzeugen soll.
Grüße
Biber
die deutschen Seiten des mySQL-Referenzhandbuchs (die ersten beiden Fundstellen bei "mysql trigger") bringen Syntax und Beispiele in verständlicher oder, um es deutlicher zu formulieren, in einer für mySQL-Neulinge zumutbarer Form.
Bitte mach zumindest einen ersten Gehversuch eigenständig, denn so wie ich es gelesen habe, hast du die DB jetzt in deiner Verantwortung.
Bei Problemen steht hier Hilfe bereit, aber schreiben werde ich die Trigger dir nicht.
Überleg dir, ob du nur einen Trigger BEFORE UPDATE haben willst, oder auch schon einen BEFORE INSERT-Trigger, der schon beim Anlegen irgendeinen Text "Satz angelegt von Heinz am 17.09,2013, Status XY" erzeugen soll.
Grüße
Biber