Archiv verlassen und diese Seite im Standarddesign anzeigen : delete
joey.brunner
14-01-2003, 10:36
Hi,
wie kann ich bei mysql alle eintraege aller tabellen in einer datenbank loeschen. also eine art delete * from *?
danke
joey
Christoph
14-01-2003, 11:05
Lass bei DELETE einfach die WHERE Klausel weg.
Andere Alternative bei vielen DB's ist TRUNCATE TABLE
(Unterschied zu DELETE: erfolgt nicht in Transaktion).
joey.brunner
14-01-2003, 11:16
ja schon, aber dann kann cih ja nur eine tabelle loeschen, ich moechte alle loeschen und ein delete from * geht ja nicht
joey
Christoph
14-01-2003, 13:12
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 :D
joey.brunner
14-01-2003, 21:58
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
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.