Hallo Leute, Haben ein Programm, bei dem immer mal wieder die Backup und Log Dateien geleert werden müssen, damit die Datenmengen sich noch in Grenzen halten. Es sollten z.Bsp. folgende Tabellen geleert werden: BACK_DEP BACK_EN16931 BACK_BLZ ... ... ... ARTIKEL_SCHNELLZUGRIFF_LOG MITARBEITER_LOG WARENGRUPPEN_LOG ... ... ... Aber wie bekomme ich das mit den Wildcards hin?
Was jetzt? Dateien oder Tabellen?
Das geht nur mit einer SQL Prozedur, die zuerst die Namen der Tabellen ermittelt und dann in einer Loop für jede einzelne Tabelle ein DELETE Seatement ausführt. Irgendwo im mysql Schema ist eine Tabelle, welche die Namen aller Tabellen enthält.
Ate E. schrieb: > Es sollten z.Bsp. folgende Tabellen geleert werden: > > BACK_DEP > BACK_EN16931 > BACK_BLZ > ... > ARTIKEL_SCHNELLZUGRIFF_LOG > MITARBEITER_LOG > WARENGRUPPEN_LOG
1 | for tbl in $(echo 'SHOW TABLES;' | mysql ... | grep -v '^Tables_in_' | egrep '(pat_1|pat_2|...|pat_n)'); do echo "TRUNCATE ${tbl};"; done | mysql ... |
Bräuchte eine SQL statement. Schade, wenn es mit wildcards nicht geht.
Habe jetzt bei HeidiSQL eine Möglichkeit der Sortierung und nachträglicher Bereinigung gefunden: Datenbank anklicken Es werden rechts alle Tabellen angezeigt Benötigte Tabelle wählen und mit rechter Maustaste draufklicken Tabellen leeren auswählen -> Fertig Trotzdem danke :-)
USE `myDatabase`; SELECT GROUP_CONCAT(DISTINCT CONCAT('TRUNCATE ',`TABLE_NAME`) SEPARATOR '; ') FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = DATABASE() AND `TABLE_TYPE` = 'BASE TABLE' AND `TABLE_NAME` LIKE 'BACK_%'; Ergebnis ist dann ein multiple statement, das ausgeführt werden muss...
:
Bearbeitet durch User
Ate E. schrieb: > Habe jetzt bei HeidiSQL eine Möglichkeit der Sortierung und > nachträglicher Bereinigung gefunden: > Trotzdem danke :-) :-ſ erst suchen dann posten
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.