Changes between Version 1 and Version 2 of функции,процедури,тригери


Ignore:
Timestamp:
05/26/26 15:52:44 (13 hours ago)
Author:
231233
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • функции,процедури,тригери

    v1 v2  
    342342END;
    343343$$ LANGUAGE plpgsql;
    344 CREATE EXTENSION IF NOT EXISTS postgis;
    345 
    346 
    347 
    348 -- Тест процедура 1 — генерирај тикети
    349 CALL generate_tickets_for_screening(55105026, 350.00);
    350 
    351 ALTER TABLE TICKET ALTER COLUMN user_id DROP NOT NULL;
    352 ALTER TABLE TICKET ALTER COLUMN reservation_id DROP NOT NULL;
    353 
    354 SELECT column_name, is_nullable
    355 FROM information_schema.columns
    356 WHERE table_name = 'ticket'
    357 AND column_name IN ('user_id', 'reservation_id');
    358 
    359 CALL generate_tickets_for_screening(55105026, 350.00);
    360 
    361 -- Земи слободен тикет од новата проекција
    362 SELECT ticket_id FROM TICKET
    363 WHERE screening_id = 55105026
    364 AND user_id IS NULL
    365 LIMIT 1;
    366 
    367 -- Земи вистински user_id
    368 SELECT user_id FROM "USER" LIMIT 1;
    369 
    370 -- Земи вистински reservation_id со статус PENDING
    371 SELECT reservation_id FROM RESERVATION
    372 WHERE status = 'PENDING'
    373 LIMIT 1;
    374 
    375 -- Земи вистински product_id
    376 SELECT product_id FROM PRODUCT LIMIT 3;
    377 
    378 CALL purchase_ticket_with_products(12818005, 'admin01', 4000005, ARRAY[1, 2, 3]);
    379 CALL add_movie_review('admin01', 195, 8, 'Одличен филм, препорачувам!');
    380 
    381 -- Земи филм за кој admin01 има тикет но нема review
    382 SELECT DISTINCT s.movie_id
    383 FROM TICKET t
    384 JOIN SCREENING s ON s.screening_id = t.screening_id
    385 WHERE t.user_id = 'admin01'
    386 AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01')
    387 LIMIT 1;
    388 
    389 SELECT DISTINCT s.movie_id
    390 FROM TICKET t
    391 JOIN SCREENING s ON s.screening_id = t.screening_id
    392 WHERE t.user_id = 'admin01'
    393 AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01')
    394 LIMIT 1;
    395 
    396 SELECT DISTINCT s.movie_id
    397 FROM TICKET t
    398 JOIN SCREENING s ON s.screening_id = t.screening_id
    399 WHERE t.user_id = 'admin01'
    400 AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin01')
    401 LIMIT 1;
    402 SELECT user_id FROM "USER" WHERE user_id != 'admin01' LIMIT 1;
    403 
    404 SELECT DISTINCT s.movie_id
    405 FROM TICKET t
    406 JOIN SCREENING s ON s.screening_id = t.screening_id
    407 WHERE t.user_id = 'admin02'
    408 AND s.movie_id NOT IN (SELECT movie_id FROM REVIEW WHERE user_id = 'admin02')
    409 LIMIT 1;
    410 CALL add_movie_review('admin02', 195, 7, 'Многу добар филм!');
     344
     345CREATE OR REPLACE TRIGGER trg_complete_past_reservations
     346AFTER INSERT ON SCREENING
     347FOR EACH ROW
     348EXECUTE FUNCTION complete_past_reservations();