Skip to content

Commit a17cbf7

Browse files
[ADD] Store procedures intro
1 parent 4a62279 commit a17cbf7

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

classes/32-functions.sql

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,21 @@ SELECT
140140
max_raise_3(employee_id)
141141
FROM employees
142142
WHERE employee_id = 206;
143+
144+
-- Returns a table with a function
145+
CREATE OR REPLACE FUNCTION country_region()
146+
RETURNS TABLE (id CHARACTER(2), name VARCHAR(40), region VARCHAR(25))
147+
AS $$
148+
BEGIN
149+
RETURN QUERY
150+
SELECT
151+
c.country_id,
152+
c.country_name,
153+
r.region_name
154+
FROM countries AS c
155+
INNER JOIN regions AS r ON r.region_id = c.region_id;
156+
END;
157+
$$ LANGUAGE plpgsql;
158+
159+
SELECT *
160+
FROM country_region();

classes/33-store-procedures.sql

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-- Store procedures intro
2+
CREATE OR REPLACE PROCEDURE insert_region_proc(INT, VARCHAR)
3+
AS $$
4+
-- DECLARE
5+
BEGIN
6+
INSERT INTO regions(region_id, region_name)
7+
VALUES ($1, $2);
8+
9+
RAISE NOTICE 'Variable 1: %, 2: %', $1, $2
10+
11+
COMMIT;
12+
-- ROLLBACK;
13+
END;
14+
$$ LANGUAGE plpgsql;
15+
16+
CALL insert_region_proc(5, 'Central America');
17+
18+
SELECT *
19+
FROM regions;

0 commit comments

Comments
 (0)