-
Notifications
You must be signed in to change notification settings - Fork 1
/
03_triggers.sql
71 lines (60 loc) · 2.29 KB
/
03_triggers.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
TRIGGERS
-----
???
*/
DO
$$
BEGIN
DROP TRIGGER IF EXISTS tri_vigienature_delete_releve ON src_vn_json.forms_json;
CREATE TRIGGER tri_vigienature_delete_releve
AFTER DELETE
ON src_vn_json.forms_json
FOR EACH ROW
WHEN (old.item #>> '{protocol, protocol_name}' LIKE 'S_OC%')
EXECUTE PROCEDURE pr_vigienature.fct_tri_delete_releve();
DROP TRIGGER IF EXISTS tri_vigienature_upsert_releve
ON src_vn_json.forms_json;
CREATE TRIGGER tri_vigienature_upsert_releve
AFTER UPDATE OR INSERT
ON src_vn_json.forms_json
FOR EACH ROW
-- WHEN pr_vigienature.is_stoc_eps_form(new.item, 'STOC_EPS')
WHEN (new.item #>> '{protocol,protocol_name}' LIKE 'S_OC%')
EXECUTE PROCEDURE pr_vigienature.fct_tri_upsert_releve();
DROP TRIGGER IF EXISTS tri_vigienature_insert_alti
ON pr_vigienature.t_releve;
CREATE TRIGGER tri_vigienature_insert_alti
AFTER INSERT
ON pr_vigienature.t_releve
FOR EACH ROW
-- WHEN (new.geom_point IS NOT NULL)
EXECUTE PROCEDURE pr_vigienature.fct_tri_update_releve_altitude();
DROP TRIGGER IF EXISTS tri_vigienature_update_alti
ON pr_vigienature.t_releve;
CREATE TRIGGER tri_vigienature_update_alti
AFTER UPDATE OF geom_point
ON pr_vigienature.t_releve
FOR EACH ROW
-- WHEN (NOT old.geom_point ~= new.geom_point AND new.geom_point IS NOT NULL)
EXECUTE PROCEDURE pr_vigienature.fct_tri_update_releve_altitude();
DROP TRIGGER IF EXISTS tri_vigienature_upsert_obs
ON src_vn_json.observations_json;
CREATE TRIGGER tri_vigienature_upsert_obs
AFTER UPDATE OR INSERT
ON src_vn_json.observations_json
FOR EACH ROW
WHEN (new.id_form_universal IS NOT NULL)
EXECUTE PROCEDURE pr_vigienature.fct_tri_update_obs();
CREATE TRIGGER tri_vigienature_delete_obs
AFTER DELETE
ON src_vn_json.observations_json
FOR EACH ROW
WHEN (old.id_form_universal IS NOT NULL)
EXECUTE PROCEDURE pr_vigienature.fct_tri_delete_obs();
COMMIT;
END
$$
;
BEGIN
;