Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовий_Гребенюк_БД_готовий.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
596.99 Кб
Скачать

Додаток б

БАЗА ДАНИХ «МЕДИЧНА КЛІНІКА»

Скрипти тригерів, процедур та представлень

Листів 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;

28