Changes between Version 23 and Version 24 of DatabaseProgramming


Ignore:
Timestamp:
05/13/26 16:01:59 (2 weeks ago)
Author:
231027
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v23 v24  
    141141== Тригери
    142142
    143 === `trg_check_ticket_availability`
    144 
    145 Овој тригер служи како безбедносен механизам кој пред секое купување проверува дали билетот е навистина слободен. Доколку билетот е веќе продаден, тригерот ја блокира трансакцијата и фрла грешка, со што се спречува конфликт на податоци.
    146 
    147 {{{
    148 
    149 CREATE OR REPLACE FUNCTION trg_check_ticket_availability()
    150 RETURNS TRIGGER AS $$
    151 BEGIN
    152     IF (SELECT is_available FROM "Ticket" WHERE ticket_id = NEW.ticket_id) = FALSE THEN
    153         RAISE EXCEPTION 'Ticket is already sold or unavailable.';
    154     END IF;
    155     RETURN NEW;
    156 END;
    157 $$ LANGUAGE plpgsql;
    158 
    159 CREATE TRIGGER check_ticket_availability_before_buy
    160 BEFORE INSERT ON "Ticket_Purchase"
    161 FOR EACH ROW EXECUTE FUNCTION trg_check_ticket_availability();
    162 
    163 }}}
    164 
    165143=== `trg_check_user_age`
    166144