Advertisement
Guest User

Untitled

a guest
Jun 27th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. create table main (
  2. main_id int8 not null,
  3. main_part timestamp,
  4. primary key (main_id));
  5.  
  6. create table main_shadow (
  7. main_id bigserial not null,
  8. primary key (main_id));
  9.  
  10. create table sub_one (
  11. main_id int8 not null,
  12. sub_one_data_field text);
  13.  
  14. alter table main add constraint test_cnstrnt_main_main_shadow_main_id foreign key (main_id) references main_shadow (main_id) on update Cascade on delete Cascade;
  15.  
  16. alter table sub_one add constraint test_cnstrnt_sub_one_main_shadow_main_id foreign key (main_id) references main_shadow (main_id) on update Cascade on delete Cascade;
  17.  
  18. create or replace function test_tfnc_main_delete()
  19. returns trigger as
  20. $body$
  21. begin
  22. --'on delete cascade' takes care of the related rows
  23. delete from main_shadow where main_id = old.main_id;
  24. return old;
  25. end;
  26. $body$
  27. language plpgsql volatile;
  28.  
  29. create trigger test_tg_ad_main_delete
  30. after delete
  31. on main
  32. for each row
  33. execute procedure test_tfnc_main_delete();
  34.  
  35. create trigger test_tg_ad_main_p1_delete
  36. after delete
  37. on main_p1
  38. for each row
  39. execute procedure test_tfnc_main_delete();
  40.  
  41. create trigger test_tg_ad_main_p2_delete
  42. after delete
  43. on main_p2
  44. for each row
  45. execute procedure test_tfnc_main_delete();
  46.  
  47. -- and so on for each partition
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement