psani funkce v pgsql
    Jiri Chaloupka 
    dev na b2bexpander.com
       
    Středa Listopad 20 23:12:59 CET 2002
    
    
  
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Pokud panove dovolite, budu jeste chvili pokracovat s ptanim ...
takze jsem se posti jinym smerem.
mam funkci a trigger:
create function default_phoneid_insells() returns opaque as '
- -- Funkce slouzi k prevodu linku na id z tabulky 
- --   pred pripadnym smazanim telefonu z databaze
  BEGIN
    -- provedu vlastni prevod
    update sells set phoneid = 0 where phoneid = OLD.id;
    return NEW;
  END;
' language 'plpgsql';
CREATE TRIGGER t_sells_changephid
  BEFORE DELETE ON phones
  FOR EACH ROW EXECUTE PROCEDURE default_phoneid_insells();
nicmene dostavam:
db=# select count(*) from phones where id = 10000;
 count
- -------
     1
(1 row)
db=# select count(*) from sells where phoneid = 10000;
 count
- -------
     1
(1 row)
db=# delete from phones where id = 10000;
DELETE 0
db=# select count(*) from sells where phoneid = 10000;
 count
- -------
     0
(1 row)
db=# select count(*) from phones where id = 10000;
 count
- -------
     1
(1 row)
trigger zafunguje, funkce zmeni to co zmenit ma v cilove tabulce, ovsem 
vlastni smazani se neprovede.
Kde jsem udelal chybu? pokud dobre chapu, tak v kdyz se v poradku provedla 
funkce, mel se vykonat i inicializacni prikaz (delete) ...
Dik Jirka
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE93AjuvYSoX+V7iM0RAp+pAKCwRiD0wFUR5TywdZ1PkRhTrW1RCQCgkqoR
g5KLPdTkEyUiDQ36Lu5Xdjc=
=mxf4
-----END PGP SIGNATURE-----
    
    
Další informace o konferenci Test