Ich stehe gerade vor einem kleinen Problem, dass ich für eine Veranstaltung morgen lösen muss.
Ich habe zwei Tabellen (Tab1 und Tab2). In Tab1 werden in Spalte A Zahlen eingetragen. Wenn dort Zahlen eingetragen sind, sollen über eine Abfrage in Tab2 Werte auf 1 gesetzt werden.
In Tab2 sind genau die Werte aus Tab1, Spalte A Primary Key. Wenn also in Tab1, Spalte A die Zahl 100 steht, soll in der passenden Zeile von Tab2 in Spalte B eine 1 eingetragen werden.
Kann mir dazu jemand den SQL Befehl sagen? Ich bin wirklich nicht so fit in SQL.
Hallo und danke für die Schnelle Antwort.
Es ist ungefähr das was ich suche.
Ich beschreibe noch einmal genauer meine DB:
Tabelle Teilnehmer hat die Spalten id (PK) und (neben weiteren) presence. In Presence steht eine 1 für anwesend und eine 0 für abwesend.
Tabelle Platz hat die Spalten id (PK) und (neben weiteren ) Teilnehmer_id.
Über eine Weboberfläche wird nun in Platz.Teilnehmer_id z.B. die Zahl 120 eingetragen.
Wenn das passiert ist, soll automatisch in Teilnehmer.presence die Zahl 1 für anwesend eingetragen werden.
Das Ganze ist übrigens eine Postgre DB.
Ich habe das System fertig übernommen und muss nun Schönheitsreparaturen vornehmen…
Nein, ein View hilft mir nicht. Die Werte von Teilnehmer.presence sollen ja in der DB verändert werden.
Die Situation ist folgende: Teilnehmer werde per Scanner ihrem Platz zugeordnet. Das steht in der Tabelle Platz.Teilnehmer_id.
Leider werden die Werte in Teilnehmer.presence dann nicht automatisch auf 1 gesetzt.
Nun, Du kannst das auch via einem TRIGGER machen, in etwa so:
test=# create or replace function update_tab_b() returns trigger as $$begin update tab_b set b=1 where a=new.a; return new; end;$$ language plpgsql;
CREATE FUNCTION
test=*# create trigger trg_update after insert or update on tab_a for each row execute procedure update_tab_b();
CREATE TRIGGER
Ist natürlich nur rudimentär, die Funktion da oben. Aber als Einstieg, hoffe ich, reicht Dir das. Schau in die Doku, das ist alles reichlich beschrieben dort.