| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- create table Driver (
- driver_id serial primary key,
- name varchar(64) not null,
- surname varchar(64) not null,
- patronimic varchar(64) not null
- );
- create table Transport (
- transport_id serial primary key,
- branch varchar(64) not null,
- model varchar(64) not null,
- license_plate_number varchar(64) not null,
- driver_id int
- );
- create table Transport_Flight (
- flight_id serial primary key,
- duration time,
- transport_id int,
- route_id int
- );
- create table Route (
- route_id serial primary key,
- route_name text not null
- );
- create table Route_Point (
- route_point_id serial primary key,
- route_id int,
- point_id int,
- order_of_the_route int not null
- );
- create table Point (
- point_id serial primary key,
- point_name text not null
- );
- create table Users(
- user_id serial primary key,
- login varchar(24) not null unique,
- password text not n
- role_id int
- )
- alter table Transport add foreign key (driver_id) references Driver(driver_id);
- alter table Transport_Flight add foreign key (transport_id) references Transport(transport_id);
- alter table Transport_Flight add foreign key (route_id) references Route(route_id);
- alter table Route_Point add foreign key (route_id) references Route(route_id);
- alter table Route_Point add foreign key (point_id) references Point(point_id);
- --триггер на валидацию ввода длительности поездки
- create or replace function check_flight_duration()
- returns trigger as $$
- begin
- if new.duration <= time '00:00:00' then
- raise exception 'Длительность рейса должна быть больше 00:00:00';
- end if;
- return new;
- end;
- $$ language plpgsql;
- create trigger trg_check_flight_duration
- before insert or update
- on transport_flight
- for each row
- execute function check_flight_duration();
- select * from transport
- update transport set driver_id = null where transport_id = 1
- select * from driver
|