· 7 years ago · Sep 14, 2018, 08:32 PM
1BEGIN;
2
3DROP TRIGGER IF EXISTS accumulate_ait
4on accumulate;
5DROP FUNCTION IF EXISTS adapt_to_service();
6DROP TABLE IF EXISTS accumulate CASCADE;
7
8CREATE TABLE IF NOT EXISTS accumulate (
9 id bigint NOT NULL,
10 monies bigint,
11 PRIMARY KEY (id)
12);
13
14CREATE OR REPLACE FUNCTION assumed()
15 RETURNS TABLE(the_id INTEGER)
16LANGUAGE plpgsql
17AS $function$ DECLARE
18 t INTEGER;
19BEGIN
20
21 --FOR t IN (SELECT A.n FROM generate_series (1, 3) AS A (n)) LOOP
22 FOR t IN (SELECT * FROM generate_series(1, 3)) LOOP
23 the_id := t;
24 RETURN NEXT;
25 END LOOP;
26
27END;
28$function$;
29
30CREATE OR REPLACE FUNCTION adapt_to_service()
31 RETURNS void
32LANGUAGE plpgsql
33AS $function$
34
35BEGIN
36 UPDATE accumulate SET monies = 25 WHERE ID = 1;
37END;
38$function$;
39
40CREATE
41OR REPLACE FUNCTION accumulate_ait()
42 RETURNS TRIGGER LANGUAGE plpgsql AS $body$
43BEGIN
44 PERFORM adapt_to_service();
45 RETURN NULL;
46END; $body$;
47
48CREATE TRIGGER accumulate_ait
49 AFTER INSERT
50 ON accumulate
51 FOR EACH STATEMENT
52EXECUTE PROCEDURE accumulate_ait();
53
54END;
55
56INSERT INTO accumulate (id) VALUES(1) RETURNING *;
57-- SELECT * FROM accumulate;