Додаток б
|
|
БАЗА ДАНИХ «МЕДИЧНА КЛІНІКА»
Скрипти тригерів, процедур та представлень
Листів 5
Розробник: ________________________ Гребенюк І. А.
Черкаси 2016
Процедура delete_diag
CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_diag`(
IN `id_diag` int
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
delete from diagnoz where `id` = `id_diag`;
end;
Процедура insert_diag
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_diag`(
IN `title_diag` varchar(100)
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
insert into diagnoz values(null, `title_diag`);
end;
Процедура update_diag
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_diag`(
IN `id_diag` int,
IN `title_diag` varchar(100)
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
update `diagnoz` set `title`=`title_diag` where `id` = `id_diag`;
end
Процедура update_hvori
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_hvori`(
IN `id_p` int,
IN `e_d` date
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
update hvori set hvori.end_day = e_d where hvori.id_pac = id_p;
end;
Процедура update_medicamentu
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_medicamentu`(
IN `id_m` int,
IN `title_m` varchar(100),
IN `s_d_m` date,
IN `e_d_m` date,
IN `k_m` int
)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
begin
update medicament set title = title_m, start_day = s_d_m, end_day = e_d_m, kilkist=k_m
where id = id_m;
end;
Тригер delete_pacient
CREATE DEFINER=`root`@`localhost` TRIGGER `delete_pacient` BEFORE DELETE ON `pacient` FOR EACH ROW begin
insert into log_pacient set
log_pacient.id_pac = old.id , log_pacient.time_day = now(), log_pacient.`events` = 'Удаление';
end;
Тригер delete_personal
CREATE DEFINER=`root`@`localhost` TRIGGER `delete_personal` BEFORE DELETE ON `personal` FOR EACH ROW begin
insert into log_personal set
log_personal.id_pers = old.id , log_personal.time_day = now(), log_personal.`event` = 'Обновление';
end;
Тригер insert_pacient
CREATE DEFINER=`root`@`localhost` TRIGGER `insert_pacient` AFTER INSERT ON `pacient` FOR EACH ROW begin
insert into log_pacient set
log_pacient.id_pac = new.id , log_pacient.time_day = now(), log_pacient.`events` = 'Добавление';
end;
Тригер insert_personal
CREATE DEFINER=`root`@`localhost` TRIGGER `insert_personal` AFTER INSERT ON `personal` FOR EACH ROW begin
insert into log_personal set
log_personal.id_pers = new.id , log_personal.time_day = now(), log_personal.`event` = 'Добавление';
end
Тригер update_pacient
CREATE DEFINER=`root`@`localhost` TRIGGER `update_pacient` BEFORE UPDATE ON `pacient` FOR EACH ROW begin
insert into log_pacient set
log_pacient.id_pac = old.id , log_pacient.time_day = now(), log_pacient.`events` = 'Обновление';
end;
Тригер update_personal
CREATE DEFINER=`root`@`localhost` TRIGGER `update_personal` BEFORE UPDATE ON `personal` FOR EACH ROW begin
insert into log_personal set
log_personal.id_pers = old.id , log_personal.time_day = now(), log_personal.`event` = 'Обновление';
end;
Представлення view_hvori
create view ` view_hvori` as
select pacient.id ,concat(pacient.name,' ', pacient.surname) as `people`, diagnoz.title, start_day, end_day,
id_pac, id_diag
from (hvori inner join pacient on hvori.id_pac = pacient.id)
inner join diagnoz on hvori.id_diag = diagnoz.id;
