Changes between Version 1 and Version 2 of Stored Functions and Procedures
- Timestamp:
- 05/12/26 01:57:29 (2 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Stored Functions and Procedures
v1 v2 11 11 Calculates the total cost of a wedding using venue, photographer, and band bookings. 12 12 13 === SQL Code ===14 15 {{{16 CREATE OR REPLACE FUNCTION calculate_wedding_total_cost(p_wedding_id INTEGER)17 RETURNS NUMERIC AS $$18 DECLARE19 total_cost NUMERIC;20 BEGIN21 SELECT22 COALESCE(SUM(vb.price), 0)23 INTO total_cost24 FROM wedding w25 LEFT JOIN venue_booking vb ON w.wedding_id = vb.wedding_id26 WHERE w.wedding_id = p_wedding_id;27 28 RETURN total_cost;29 END;30 $$ LANGUAGE plpgsql;31 }}}32 33 13 == 2. is_venue_available() == 34 14 … … 37 17 Checks whether a venue is available for a selected date and time interval. 38 18 39 == = SQL Code ===19 == 3. is_photographer_available() == 40 20 41 {{{ 42 CREATE OR REPLACE FUNCTION is_venue_available( 43 p_venue_id INTEGER, 44 p_date DATE, 45 p_start TIME, 46 p_end TIME 47 ) 48 RETURNS BOOLEAN AS $$ 49 BEGIN 50 RETURN NOT EXISTS ( 51 SELECT 1 52 FROM venue_booking 53 WHERE venue_id = p_venue_id 54 AND "date" = p_date 55 AND ( 56 p_start < end_time 57 AND p_end > start_time 58 ) 59 ); 60 END; 61 $$ LANGUAGE plpgsql; 62 }}} 21 === Description === 63 22 64 == 3. generate_rsvp_summary() == 23 Checks whether a photographer is available for a selected date and time interval. 24 25 == 4. generate_rsvp_summary() == 65 26 66 27 === Description === … … 70 31 === SQL Code === 71 32 72 {{{ 73 CREATE OR REPLACE PROCEDURE generate_rsvp_summary(p_event_id INTEGER) 74 LANGUAGE plpgsql 75 AS $$ 76 BEGIN 77 RAISE NOTICE 'Accepted: %', 78 ( 79 SELECT COUNT(*) 80 FROM event_rsvp 81 WHERE event_id = p_event_id 82 AND status = 'accepted' 83 ); 84 END; 85 $$; 86 }}} 33 {{collapse(View SQL Code) 34 <syntaxhighlight lang="sql"> 35 PASTE SQL FROM advanced_functions.sql 36 </syntaxhighlight> 37 }}
