Hallo zusammen, Ich habe folgendes Problem: Ich habe mehrere identische Tabellen in einer Datenbank, also quasi so: Test ist der Name meiner Datenbank, darin befinden sich n Tabellen mit dem Wert x. test:tabelle_1:wert_x test:tabelle_2:wert_x test:tabelle_3:wert_x . . . test:tabelle_n:wert_x Nun möchte ich gerne mit einem Update-Befehl alle Werte wert_x mit einem mal ändern. Leider komme ich nicht dadrauf, wie ich das für alle Tabellen machen kann. Wenn ich eine einzelne Tabelle ansprechen möchte kann ich ja folgendes machen: UPDATE tabelle_1 SET wert_x = 3; Und das ganze möchte ich gerne für alle Tabellen machen, jetzt aber unabhängig davon wie viele Tabllen ich habe. Könnt ihr mir da weiterhelfen:/?
Hab ich auch schon überlegt aber mir fällt keine andere Struktur ein. Um das ganze mal zu konkretisieren: Autos:Auto_1:Tankinhalt Autos:Auto_2:Tankinhalt Autos:Auto_3:Tankinhalt . . . Autos:Auto_n:Tankinhalt Oder ist das ein völlig falscher Ansatz?
A. K. schrieb: > Klingt nach Fehler beim Design der Datenbank. Dem kann ich mich nur anschliessen. Umschiffen kannst Du dies mit einer Stored Procedure. So Handgelenkmalphi:
1 | USE Test; |
2 | DROP PROCEDURE IF EXISTS test_updates; |
3 | |
4 | Delimiter | |
5 | CREATE PROCEDURE test_updates (_new_value INT UNSIGNED) |
6 | SQL SECURITY DEFINER |
7 | MODIFIES SQL DATA |
8 | BEGIN |
9 | Update tabelle_1 Set wert = _new_value; |
10 | Update tabelle_2 Set wert = _new_value; |
11 | Update tabelle_3 Set wert = _new_value; |
12 | END; | |
13 | Delimiter ; |
So ungefaehr.
Juliana Retaro schrieb: > Oder ist das ein völlig falscher Ansatz? Ja. Eine Tabelle mit Tankinhalt und Auto# als Spalten.
Ja das hatte ich auch schon überlegt, aber ich habe in der Tabelle Auto_1...Auto_n mehrere Eigenschaften für jedes Auto, da fande ich es sinnvoller und übersichtlicher das Auto als Tabelle zu definieren und dann die Eigenschaften aufzuführen. Aber dann ist es sinnvoller alle Eigenschaften als Tabelle zu machen und die Autos dann Eigenschaft zu listen oder? Sorry bin noch ziemlich neu was das Anlegen von Datenbanken angeht?
Schlaues Buch zu Datenbankdesign lesen. Dein Ansatz ist definitiv falsch. Aber hier ist zu wenig Information drin, um klar antworten zu können.
:
Bearbeitet durch User
Ähm ja das bringt mich auf ganz neue Ideen:D. Schonmal vielen Dank für diesen Denkanstoß, ich denke ich werde die Datenbank wohl etwas "überarbeiten" müssen.
mindestens 3NF. ich kenn zwar deine Datenbank nicht, aber so wie sich das anhört hast du nichtmal 1NF... Da kann dir dann niemand mehr helfen!
Mach eine Tabelle, die die Eigenschaften enthält (also Spalten Auto, eigenschaft1, eigenschaft2, eigenschaft3, eigensc...) Und eine Tabelle mit Auto und Tankinhalt als Spalten. Und wenn Du sicherstellen willst, daß ein Auto mit seinen Eigenschaften existieren muß, bevor man dessen Tankinhalt speichern kann, definiere einen primary Key auf Spalte auto in der Eigenschaftentabelle, und einen foreign Key in der Tankeinhalttabelle, der auf den PK der Eigenschaftentabelle verweist.
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.