Hi,
wie kann ich bei mysql alle eintraege aller tabellen in einer datenbank loeschen. also eine art delete * from *?
danke
joey
Hi,
wie kann ich bei mysql alle eintraege aller tabellen in einer datenbank loeschen. also eine art delete * from *?
danke
joey
rock and roll is for rebels, it´s not family entertainment
Lass bei DELETE einfach die WHERE Klausel weg.
Andere Alternative bei vielen DB's ist TRUNCATE TABLE
(Unterschied zu DELETE: erfolgt nicht in Transaktion).
ja schon, aber dann kann cih ja nur eine tabelle loeschen, ich moechte alle loeschen und ein delete from * geht ja nicht
joey
rock and roll is for rebels, it´s not family entertainment
Das geht nicht mit SQL, sondern nur mit einer prozeduralen Erweiterung,
z.B. PL/SQL (Oracle) oder PL/pgSQL (Postgres). MySQL hat sowas nicht.
Schreibe Dir einfach eine stored Procedure, die folgendes macht:
- alle Tabellennamen aus dem Systemcatalog auslesen (ggf. über
reguläre Ausdrücke beschränken, d.h. mit dem Operator SIMILAR)
- in einer Loop über die Tabellennamen eine DELETE FROM tblname
ausführen mittels EXECUTE (Postgres) bzw. EXECUTE IMMEDIATE (Oracle)
Zeitaufwand unter einer halben Stunde.
mysqldump --add-drop-table -d <deine DB>|mysql <deine DB>
solltest du einfach auf der shell mal ausprobieren
"Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)
hi danke... ich hab jetzt einfach eine funktion dafuer geschrieben. dort uebergibtr man einfach die tabellen und dann werden diese geloescht.. trotzdem danke fuer die vielen antworten...
jeoy
rock and roll is for rebels, it´s not family entertainment
Lesezeichen