DatabaseProgramming: UpdateLastMaintenance.sql

File UpdateLastMaintenance.sql, 609 bytes (added by 231044, 6 days ago)
Line 
1create function UpdateLastMaintenance()
2returns trigger as $$
3declare
4 LastMaintenanceDate timestamp;
5begin
6 select m.date into LastMaintenanceDate
7 from maintenance m
8 join airplane a on a.lastmaintenanceid = m.id
9 where a.id = new.airplaneid;
10
11 if LastMaintenanceDate is null or LastMaintenanceDate <= new.date then
12 update airplane
13 set lastmaintenanceid = new.id
14 where id = new.airplaneid;
15 end if;
16
17 return new;
18end;
19$$ language plpgsql;
20
21create trigger UpdateLastMaintenance
22after insert on maintenance
23for each row execute function UpdateLastMaintenance();