Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. create database testTrigger;
  2. createlang plpgsql testtrigger;
  3. \connect testtrigger
  4.  
  5. create table Parent( node INTEGER);
  6. create table Child ( node INTEGER);
  7.  
  8. \d parent
  9. \d Child
  10.  
  11. CREATE LANGUAGE plpgsql;
  12.  
  13. CREATE FUNCTION fix_child_function() RETURNS trigger AS $fix_child$
  14.     BEGIN
  15.         --Check ifthere were
  16.         IF(TG_OP = 'UPDATE') THEN
  17.             UPDATE Child SET node = NEW.node where node = OLD.node
  18.             RETURN NEW;
  19.         ELSIF(TG_OP = 'DELETE') THEN
  20.             delete from Child where node = OLD.node
  21.             RETURN NEW;
  22.         END IF;
  23.         RETURN NULL;
  24.     END
  25. $fix_child$ LANGUAGE plpgsql;
  26.  
  27. CREATE TRIGGER fix_child BEFORE UPDATE OR DELETE ON Parent FOR EACH ROW EXECUTE PROCEDURE fix_child_function();
  28.  
  29. INSERT INTO parent values(1);
  30. INSERT INTO parent values(2);
  31. INSERT INTO parent values(3);
  32. INSERT INTO parent values(4);
  33. INSERT INTO child values(2);
  34. INSERT INTO child values(3);
  35. INSERT INTO child values(4);
  36.  
  37. select * from parent;
  38. select * from child;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement