SQL Werte aus allen Tabellen löschen

feuse8

Lt. Junior Grade
Registriert
Mai 2008
Beiträge
310
Hallo Leute,

hab eine DB mit 73 Tabellen und mehreren fehlerhaften Datensätzen, die ich gerne löschen möchte. Kennt wer einen Trick, wie ich die Abfrage

Code:
DELETE FROM C_Aussentemperatur WHERE Date('Y') = 1998

so abändern kann, dass die Werte aus allen Tabellen gelöscht werden? Sowas wie
Code:
DELETE FROM ALL...

Danke für eure Hilfe!
 
Mit 'TRUNCATE' kannst Du die Daten einer tabelle in einem Rutsch löschen. Mit 'SHOW TABLES' kannst Du die Tabellen einer Datenbank auslesen. Beides miteinander verknüpft ergibt das, was Du möchtest.

Mit Relationen (nur mit Engine InnoDB) kann man fehlerhafte Datensätze weitgehend vermeiden und zusammengehörende Daten über mehrere Tabellen hinweg updaten oder löschen (ON DELETE CASCADE etc.)
 
Du kannst dir deine statements auch einfach generieren lassen. Die genaue Syntax hängt von deinem Datenbanksystem ab. Zum Beispiel für SQL Server:

SELECT 'DELETE FROM ' + Table_name + ' WHERE deineBedingung'
FROM information_schema.tables WHERE table_type = 'BASE TABLE'
 
Zurück
Oben