Budowa triggera po insercie.

0

Cześć, nie za bardzo wiem jak wywołać w triggerze, że po insercie w tabeli "1", buduje sie insert w '2' i '3 tabeli'. Gdzie id z tabeli "1", przechodzi do tabeli "2", natomiast z tabeli "2" idze id to tabeli "3".

CREATE OR REPLACE FUNCTION nazwa() RETURNS TRIGGER AS && BEGIN
????????????????????????????????????????????????????????????
???????????????????????????????

RETURN NEW;
END;

CREATE TRIGGER jakas_nazwa BEFORE  INSERT ON tabela_1 FOR EACH ROW EXECUTE PROCEDURE nazwa();
1

Nie podałeś dystrybucji bazy więc przyjmuję, że postgresql

CREATE FUNCTION ftest(
)
RETURNS trigger AS
$body$
declare
  aid integer;
begin
	insert into table2 (<<columny>>) values (<<wartosci>>) returning id into aid;
    insert into table3 (<<columny>>) values (<<wartosci>>) 
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
PARALLEL UNSAFE;

CREATE TRIGGER trigger_test_tr
  AFTER INSERT 
  ON table1
  
FOR EACH ROW 
  EXECUTE PROCEDURE ftest();

jak chcesz się dobrać do ID z table1 to NEW.id

0

@pozdrawiam: Marcinowi chodziło o to, że na forum robiąc nowy temat podaje się też tagi. Pisząc dystrybucja bazy miałem na myśli to, że kod najbardziej przypominał postgresql dlatego też ci podałem przykład w postgesql ale są inne jak np MariaDB, na którym niemal na pewno pracujesz (wnioskujemy po phpmyadmin - php to język a "my" to od mysql który jest płatny natomiast MariaDB jest darmowa) ale są też inne jak FireBird, Oracle, SQLite itd ... jak nie podajesz w tagach, temacie lub treści co to za baza to ciężko nam podać gotowe rozwiązanie. Co do mariaDB to niestety nie mam pod ręką dystrybucji na której mógłbym Ci przygotować gotowca ale niemal na pewno ta konstrukcja:
https://mariadb.com/kb/en/insertreturning/
pozwoli ci uzyskać ID z tabeli 2 aby przekazać go do tabeli 3

1 użytkowników online, w tym zalogowanych: 0, gości: 1