Changes between Version 5 and Version 6 of AnalyticalStatisticalQuerying


Ignore:
Timestamp:
09/27/25 13:17:42 (2 weeks ago)
Author:
221507
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AnalyticalStatisticalQuerying

    v5 v6  
    208208
    209209
     210----
     211
     212
     213= Triggers =
     214
     215== 1. Update free seats based on ticket purchase ==
     216
     217This trigger calculates the number of available tickets after purchasing a ticket and can be tested via the application, by trying to buy new tickets.
     218
     219{{{
     220-- TRIGGER TO UPDATE FREE SEATS
     221CREATE OR REPLACE FUNCTION update_free_seats()
     222RETURNS TRIGGER AS $$
     223BEGIN
     224    IF TG_OP = 'INSERT' THEN
     225        UPDATE trip
     226                SET free_seats = free_seats - 1
     227                WHERE trip_id = NEW.trip_id;
     228        RETURN NEW;
     229    ELSIF TG_OP = 'DELETE' THEN
     230        UPDATE trip
     231                SET free_seats = free_seats + 1
     232                WHERE trip_id = OLD.trip_id;
     233        RETURN OLD;
     234    END IF;
     235    RETURN NULL;
     236END;   
     237$$ LANGUAGE plpgsql;
     238
     239CREATE TRIGGER ticket_insert_update_seats
     240    AFTER INSERT ON ticket
     241    FOR EACH ROW
     242    EXECUTE FUNCTION update_free_seats();
     243
     244CREATE TRIGGER ticket_delete_update_seats
     245    AFTER DELETE ON ticket
     246    FOR EACH ROW
     247    EXECUTE FUNCTION update_free_seats();
     248}}}
     249
     250
     251