Problem mit Update

H

Herodia

Hallo,

ich bin neu in Sachen MySQL und auch mit PHP arbeite ich noch nicht so lang.
Ich weiß nicht, ob mein Fehler ganz trivial ist, oder ich einfach einen falschen Denkansatz habe. Ich hoffe aber, dass mir hier jemand weiter helfen kann.

Ich habe zwei Tabellen die etwa folgendermaßen aussehen:

Tabelle1
ID-----Wert1-----Wert2
1-------456-------4568
2-------458-------7869
3-------986-------7986
4-------876-------1568

Tabelle2
Ref--------Wert
1-----------4568
1-----------78698
1-----------7893
2-----------4578

Nun will ich z.B. in der ersten Tabelle alle Werte der ID = 1 auf Null setzten (soweit kein Problem). Zudem sollen aber auch die Werte in der zweiten Tabelle genullt werden, also alle Werte in den Zeilen, in denen Ref = ID ist.

Ich habe es über mehrere Wege versucht, über ein INNER JOIN Update, über getrennt Updates usw.
Doch irgendwie will es nicht funktionieren, dass die Werte in der zweiten Tabelle genullt werden.

Kann mir jemand sagen, wo mein Fehler liegt/liegen könnte?

Danke im Vorraus.

LG Herodia
 
Also versuch's doch mal so:

Code:
UPDATE Tabelle1, Tabelle2 SET id=0, ref=0 WHERE id=ref;

Es funktioniert sogar! :)
 
Zuletzt bearbeitet:
Hm, bei mir funktioniert es leider nicht. Es erscheint folgende Fehlermeldung wenn ich mir den Fehler ausgeben lasse:

Not unique table/alias: 'tabelle2'
 
Arg, habe gerade einen Fehler in meinem Befehl entdeckt.
Nun kommt aber eine andere Fehlermeldung, die ich auch bei meinen vorherigen Versuchen schon immer bekommen habe:

Cannot add or update a child row: a foreign key constraint fails
 
Also ich habe es eigentlich etwas anders gemacht. Hier die Befehle:

Code:
CREATE TABLE t1 (id INTEGER, wert1 INTEGER, wert2 INTEGER);
CREATE TABLE t2 (ref INTEGER, wert INTEGER);


INSERT INTO t1 values (1, 456, 4568);
INSERT INTO t1 values (2, 458, 7869);

INSERT INTO t2 values (1, 4568);
INSERT INTO t2 values (1, 7869);


UPDATE t1, t2 SET id=0, ref=0 WHERE id=ref;

t1 und t2 stehen jeweils für Tabelle 1 bzw. 2

Ich probiers nochmal.

EDIT: Also bei mir klappt es wunderbar! Vielleicht hast du keine Werte eingefügt?
 
Zuletzt bearbeitet:
Doch, Werte waren in der Tabelle. Problem ist gelöst. Ich konnte die Daten einfach nicht updaten, sondern nur löschen. Sind halt dann doch die Fehler, die man als Anfänger eher selten bemerkt, wenn man sich nicht ausgiebig damit befasst hat
Ich danke dir trotzdem für deine Hilfe und die Mühe die du dir gemacht hast =)

LG Herodia
 
Zurück