hallo leute ich bin neu hier bei wer-weiss-was ich find auch echt cool das man für jede frage ein antwort bekommt
mal sehen ob ihr auch mein frage antworten könntet
in ein db z.b unter
maraja sind datenbänke bz sturckturen wie z.b
users
foto
chat usw
ich würde gerne
unter users
die tabellen dauernt in ein anderen strucktur es dauernt kopiert z.b in
people soll es die datenbänke in ein andere name dauernt kopieren wenn es z.b unter (users) name und pass steht sollte unter people username von (users)name kopieren und bei poeple sollte er den passwort von (users) pass dauernt kopieren ich wusste nicht wie ich die frage andersta stellen sollte
Bei Deiner Anfrage ist es schwierig wirklich herauszufinden was Du möchtest, deswegen kann ich nur Vermutungen anstellen. Für mich deutet alles darauf hin, dass Du bei Änderungen in einer Tabelle gleichzeitig Werte einer anderen Tabelle ändern möchtest.
Sollte dies so sein würde ich Dir im ersten Schritt vorschlagen, Dich mit „Triggern“ zu beschäftigen. Geschickt angelegt machen die genau das, was Du meiner Meinung nach suchst.
CREATE TRIGGER veritabani_ismi.trg_users_update
BEFORE UPDATE ON veritabani_ismi.tablo_ismi FOR EACH ROW
BEGIN
IF NEW.passwort != OLD.passwort THEN
SET NEW.password = NEW.passwort;
END IF;
IF NEW.username != OLD.username THEN
SET NEW.login = NEW.username;
END IF;
END;
Das Statement zur Erstellung des Triggers ist falsch bzw. unvollständig. Du gibst beispielsweise nicht an, in welcher Tabelle die Updates vollzogen werden sollen. Weiterhin kann man sich überlegen ob unbedingt das IF-Statement in den Trigeer muss. Denn grundsätzlich kann das Update auch dann stattfinden wenn das Passwort nicht geändert wurde - hat den gleichen Effekt.
Mit IF sollte der Trigger so anlegbar sein:
CREATE TRIGGER veritabani\_ismi.trg\_users\_update
BEFORE UPDATE ON veritabani\_ismi.tablo\_ismi
FOR EACH ROW BEGIN
IF (NEW.passwort != OLD.passwort) THEN
UPDATE veritabani\_ismi.tablo\_ismi\_upd
set passwort=NEW.passwort where id=NEW.id;
END IF;
IF (NEW.username != OLD.username) THEN
UPDATE veritabani\_ismi.tablo\_ismi\_upd
set username=NEW.username where id=NEW.id;
END IF;
END;
Ich habe leider keine Umgebung in welcher ich das Statement testen kann. Die Tabelle ‚tablo_ismi_upd‘ musst Du dementsprechend durch den von Dir verwendeten Tabellennamen ersetzen.