Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP FUNCTION IF EXISTS f_lopeta_teenus() CASCADE;
- CREATE OR REPLACE FUNCTION f_lopeta_teenus()
- RETURNS trigger AS $$
- BEGIN
- RAISE EXCEPTION 'Lopetada saab ainult seisundis "Aktiivne"
- voi "Mitteaktiivne" teenust!';
- RETURN NULL;
- END;
- $$ LANGUAGE plpgsql;
- COMMENT ON FUNCTION f_lopeta_teenus() IS 'See trigeri funktsioon aitab realiseerida ärireeglit: teenust saab lõpetada vaid siis, kui teenus on seisundis “aktiivne” või “mitteaktiivne.';
- DROP TRIGGER IF EXISTS trig_lopeta_teenus ON Teenus CASCADE;
- CREATE TRIGGER trig_lopeta_teenus BEFORE UPDATE OF teenuse_seisundi_liik_kood ON Teenus
- FOR EACH ROW WHEN (OLD.teenuse_seisundi_liik_kood NOT IN (2,3) AND NEW.teenuse_seisundi_liik_kood=4) EXECUTE
- PROCEDURE f_lopeta_teenus();
- COMMENT ON TRIGGER trig_lopeta_teenus ON Teenus IS 'See trigeri funktsioon aitab realiseerida ärireeglit: teenust saab lõpetada vaid siis, kui teenus on seisundis “aktiivne” või “mitteaktiivne.';
- DROP FUNCTION IF EXISTS f_lopeta_teenus(p_versioon TEXT, p_teenus_kood Teenus.teenus_kood%TYPE) CASCADE;
- CREATE OR REPLACE FUNCTION f_lopeta_teenus(p_versioon TEXT, p_teenus_kood Teenus.teenus_kood%TYPE)
- RETURNS Teenus.teenus_kood%TYPE AS $$
- UPDATE Teenus SET teenuse_seisundi_liik_kood=4 WHERE
- teenus_kood=p_teenus_kood AND xmin=p_versioon::xid
- RETURNING teenus_kood;
- $$ LANGUAGE sql SECURITY DEFINER
- SET search_path = public, pg_temp;
- COMMENT ON FUNCTION f_lopeta_teenus(p_versioon TEXT, p_teenus_kood Teenus.teenus_kood%TYPE)
- IS 'Optimistlik lähenemine.
- See funktsioon realiseerib andmebaasioperatsiooni OP5.
- Selle funktsiooni abil viiakse teenus lõpetatud olekusse.
- See tähendab, et antud teenust kingaparandus sellisel kujul enam ei paku.
- Teenus peab olema seisundis aktiivne=2 või mitteaktiivne=3.
- Parameeter p_versioon on muudetava rea versioon ja p_teenus_kood oodatav väärtus on lõpetatava teenuse identifikaator.
- Funktsioon tagastab õnnestumise korral teenuse koodi.';
- DROP FUNCTION IF EXISTS f_lopeta_teenus(p_teenus_kood Teenus.teenus_kood%TYPE) CASCADE;
- CREATE OR REPLACE FUNCTION f_lopeta_teenus(p_teenus_kood Teenus.teenus_kood%TYPE)
- RETURNS Teenus.teenus_kood%TYPE AS $$
- UPDATE Teenus SET teenuse_seisundi_liik_kood=4 WHERE
- teenus_kood=p_teenus_kood
- RETURNING teenus_kood;
- $$ LANGUAGE sql SECURITY DEFINER
- SET search_path = public, pg_temp;
- COMMENT ON FUNCTION f_lopeta_teenus(p_teenus_kood Teenus.teenus_kood%TYPE)
- IS 'See funktsioon realiseerib andmebaasioperatsiooni OP5.
- Selle funktsiooni abil viiakse teenus lõpetatud olekusse.
- See tähendab, et antud teenust kingaparandus sellisel kujul enam ei paku.
- Teenus peab olema seisundis aktiivne=2 või mitteaktiivne=3.
- Parameeter p_teenus_kood oodatav väärtus on lõpetatava teenuse identifikaator.
- Funktsioon tagastab õnnestumise korral teenuse koodi.';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement