Forum: PC-Programmierung MySQL Update über alle Tabellen in Datenbank


von Juliana Retaro (Gast)


Lesenswert?

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:/?

von (prx) A. K. (prx)


Lesenswert?

Klingt nach Fehler beim Design der Datenbank.

von Juliana Retaro (Gast)


Lesenswert?

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?

von Mehmet K. (mkmk)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

Juliana Retaro schrieb:
> Oder ist das ein völlig falscher Ansatz?

Ja. Eine Tabelle mit Tankinhalt und Auto# als Spalten.

von Juliana Retaro (Gast)


Lesenswert?

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?

von netdieter (Gast)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

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
von Juliana Retaro (Gast)


Lesenswert?

Ä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.

von eefa (Gast)


Lesenswert?

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!

von Jens G. (jensig)


Lesenswert?

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
Noch kein Account? Hier anmelden.