Mysql Datenbank tablle dauer kopie

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

Hallo!

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.

Viele Grüße
Andreas van de Langenberg

genau du hast richtig erfasst

ich hab mich auch mit tigger beschäftigt

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;

es sollte gehen aber irgend wie geht das net

Hallo!

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.

Grüße
Andreas van de Langenberg

hmm
ich glaub ich mach dann da ein fehler sagen wir mal

communitydb ist das database name

communitydb
-preferences
-users
-chat
-forum

so ich will das ich die daten von users zu preferences überträgt
in users sind die tablen ganz anders wie bei preferences z.b

user: user, pass
preferences: LOGIN, PASSWORD

wie sollte ich jetzt das zusammen binden ? das die sich immer automatich updaten ? bei diessen tiger ?