-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathzuber-triggers.sql
45 lines (41 loc) · 1.07 KB
/
zuber-triggers.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
-- zuber Database Triggers
-- version 1.0
USE zuber;
DROP TRIGGER IF EXISTS update_booking_status;
DROP TRIGGER IF EXISTS insert_booking;
DROP TRIGGER IF EXISTS update_driver_car;
DELIMITER |
CREATE TRIGGER update_booking_status
BEFORE UPDATE ON booking
FOR EACH ROW
BEGIN
IF OLD.booking_status <> NEW.booking_status OR
OLD.transaction_id <> NEW.transaction_id THEN
UPDATE customer SET current_booking = NULL
WHERE customer_id = OLD.customer_id;
UPDATE driver SET current_booking = NULL
WHERE driver_id = OLD.driver_id;
END IF;
END |
DELIMITER ;
DELIMITER |
CREATE TRIGGER insert_booking
AFTER INSERT ON booking
FOR EACH ROW
BEGIN
UPDATE customer SET current_booking = NEW.booking_id
WHERE customer_id = NEW.customer_id;
UPDATE driver SET current_booking = NEW.booking_id
WHERE driver_id = NEW.driver_id;
END |
DELIMITER ;
DELIMITER |
CREATE TRIGGER update_driver_car
BEFORE UPDATE ON driver
FOR EACH ROW
BEGIN
IF OLD.car_id <> NEW.car_id THEN
DELETE FROM car WHERE car_id = OLD.car_id;
END IF;
END |
DELIMITER ;