Napravio sam tabelu materijali evo koda za nju:
CREATE TABLE materijali (
id_materijala number(6) constraint materijal_pk PRIMARY KEY,
naziv varchar2(10) NOT NULL,
cena number NOT NULL,
kolic_mat number(10) default 0,
opis varchar2(50) NULL);
A potom trigger nad drugom tabelom, tabelom Fakture, koji u zavisnosti od tipa fakture da li je prodaja ili kupovina menja vrednost kolone kolic_mat u tabeli materijali. Evo i tog koda:
create or replace trigger fakture_tr1
after insert on fakture
for each row
begin
if (lower(:new.tip)='prodaja') then
update materijali
set KOLIC_MAT= KOLIC_MAT-:new.kolicina where id_materijala=:new.id_materijala;
end if;
end;
Trigger radi ali je problem sto je prvo potrebno uneti neku vredost u tabelu materijali u koloni kolic_mat, jer je nemoguce izvoditi bilo kakve aritmeticke opreracije sa kolonom koja je NULL. Ovo sam pokusao resiti time sto sam pri kreiranju tabele uneo da je kolic_mat number(10) DEFAULT 0, ali ne pomaze.