Toon posts:

PostgreSQL Trigger - Functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in postgresql een trigger maken die in de tabel artikelen (artikelid, voorraad) controleert of er nog wel genoeg is van een bepaald artikel. Wanneer dit niet het geval is moet de trigger automatisch een order aan maken in de tabel orders (orderid, artikelid, aantal).

Ik heb al heel lang gezocht op internet. o.a. op postgresql.org en google, maar ik kan hiervoor maar geen geschikt voorbeeld vinden en het lukt mij ook niet om zoiets te maken. Wie weet hoe dit moet? En heeft er iemand misschien een voorbeeld voor mij. Er is mij verteld dat dit gedaan moet worden i.c.m. een functie. Maar ik heb echt geen idee hoe ik het moet doen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zo'n functie is toch niet zo moeilijk?

Maak eerst een functie die alleen die controle doet en als het niet bestaat een nieuwe entry maakt, iets ala:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
create function blaat () AS
integer iets;
integer nogiets;
begin;
select voorraad into iets from artikel where artikelid = X;
-- voorraad op?
if iets < Y
    select count(*) into nogiets from orders where artikelid = X;
    -- is er al een order?
    if nogiets < 1  
       insert into orders (artikelid, aantal) values (X, Z);
    end if;
end if;


En maak daar een on update (for each row) trigger van voor de artikelen.

De hiaten in dit verhaaltje zou je hiermee aan moeten kunnen vullen: http://www.postgresql.org/idocs/index.php?programmer-pl.html
http://www.postgresql.org/idocs/index.php?plpgsql.html

[ Voor 15% gewijzigd door ACM op 04-01-2003 19:10 ]