Hallo,
ich möchte nach einem insert einen trigger ausführen, der in einer zweiten Tabelle einen Satz anlegt, und die id aus dem neu angelegten Satz in diese 2. Tabelle schreibt.
muster1 {
id,
wert,
}
muster2{
id,
id aus muster 1,
wert,
}
insert bekomme ich hin, aber wie komme ich im trigger an die id aus der 1. Tabelle?
Hat jemand evtl. eine ID?
Danke![]()
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
... wobei NEW.id sinnvoller ist, spart einen Funktionsaufruf ...
AndreasCode:test=*# create table t1 (id serial); NOTICE: CREATE TABLE will create implicit sequence "t1_id_seq" for serial column "t1.id" CREATE TABLE Zeit: 1,854 ms test=*# create table t2 (id serial, id_1 int); NOTICE: CREATE TABLE will create implicit sequence "t2_id_seq" for serial column "t2.id" CREATE TABLE Zeit: 13,114 ms test=*# create or replace function trg_t1() returns trigger as $$begin insert into t2 values (default, NEW.id); return NEW; end; $$language plpgsql; CREATE FUNCTION Zeit: 0,427 ms test=*# create trigger trg1 after insert on t1 for each row execute procedure trg_t1(); CREATE TRIGGER Zeit: 0,410 ms test=*# insert into t1 (id) values (default); INSERT 0 1 Zeit: 0,610 ms test=*# select * from t2; id | id_1 ----+------ 1 | 1 (1 Zeile) Zeit: 1,024 ms test=*# insert into t1 (id) values (10); INSERT 0 1 Zeit: 0,249 ms test=*# select * from t2; id | id_1 ----+------ 1 | 1 2 | 10 (2 Zeilen)
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
oh ja! Danke.
Klappt :-}
Nachtrag:
der Vorschlag mit currval() ist doof, weil dies schiefgehen würde (sogar mit Fehler), wenn nicht die Sequenz befragt wird, sondern ein Wert vorgegeben.
Und falls Marko Tiikkaja sein wCTE in 9.1 bekommt, dann gäbe es sogar einen Weg, dies mit einem einzigen SQL-Befehl und ohne TRIGGER hinzubekommen.
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen