Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Триггер




Создание таблиц

Далее с помощью языка PL/SQL создадим и заполним таблицы.

Скрипты таблиц:

 

Create table spisok_operacionnih

(ID_Pacienta Number Not Null Primary key,

FIO Varchar2(400),

№palati Number,

address Varchar2 (100),

Diagnoz Varchar2(200),

FIO_rodstvennika Varchar2(400),

Data_rojdenia Date),

Constraint FK_SO Foreign Key (Diagnoz) references Diagnoz (Diagnoz);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘1’, ‘ Алексеев Алексей Алексеевич’, ‘1’, ‘ Алексено 3-1’, ‘-‘, ‘Алексеев Алексей Иванович’, ’10.10.69’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘2’, ‘ Андреев Андрей Алексеевич’, ‘1’, ‘ Петровка 31-12’, ‘-‘, ‘Андреев Алексей Иванович’, ’15.09.77’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘3’, ‘ Бондарев Виктор Сергеевич, ‘2’, ‘ Сталеваров 41-2, ‘-‘, ‘Бондарев Сергей Генадьевич’, ’02.01.59’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘4’, ‘ Воложин Виктор Андреевич, ‘2’, ‘ Маркса 116-23, ‘-‘, ‘Воложина Тамара Сергеевна’, ’05.06.91’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘5’, ‘ Вахитов Рустам Авраамович, ‘2’, ‘ Ворошилова 16-35, ‘-‘, ‘Вахитов Авраам Маратович ’, ’16.10.47’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘6’, ‘Гайсин Марат Алексеевич, ‘3’, ‘ Ворошилова 88-15, ‘-‘, ‘Гайсина Светлана Евгеньевна ’, 19.12.85’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘7’, ‘ Дубов Сергей Сергеевич, ‘4’, ‘ Вокзальная 112-31, ‘-‘, ‘Дубова Наталья Леонидовна ’, ’16.05.49’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘8’, ‘ ДемьяновА Анна Ивановна, ‘5’, ‘ Завенягина 1-3, ‘-‘, ‘-‘, ’16.10.47’);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘9’, ‘ Давыдова Анна Сергеевна, ‘5’, ‘ Завенягина 12-32, ‘-‘, ‘-‘, ’17.01.57);

 

Insert into spisok_operacionnih (ID_Pacienta, FIO, №palati, address, Diagnoz, FIO_rodstvennika, Data_rojdenia) VALUES (‘10’, ‘ Петрова Наталья Ивановна, ‘5’, ‘ Мичурина 15-49, ‘-‘,‘-‘, ‘17.02.83’);

 

Create table Operacionii_Spisok

(ID_Operacii Number Not Null Primary key,

ID_Pacienta Number,

ID_brigadi Number,

Vid_operacii Varchar2 (100),

Date Varchar2(200));

Constraint FK_OS Foreign Key (ID_Pacienta) references spisok_operacionnih (ID_Pacienta),

Constraint FK_OS1 Foreign Key (ID_brigadi) references Brigada (ID_brigadi);

 

Create table Naznachenie

(ID_Pac i enta Number,

ID_Rabotnika Number,

ID_Lekarstva Number,

Primechanie Varchar2 (100),

Data Date),

Constraint FK_Nazn Foreign Key (ID_Pac i enta) references spisok_operacionnih (ID_Pac i enta),

Constraint FK_Nazn1 Foreign Key (ID_rabotnika) references Medpersonal (ID_rabotnika),

Constraint FK_Nazn2 Foreign Key (ID_Lekarstva) references Lekarstva (ID_Lekarstva);

 

Create table Diagnoz

(ID Number Not Null Primary key,

Diagnoz Varchar2(400));

Insert into Diagnoz (ID, Diagnoz) VALUES (’1’,’ Разрыв связки’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’2’,’ Бурсит’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’3’,’ Вывих’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’4’,’ Остеомиелит’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’5’,’ Артрогрипоз’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’6’,’ Миниск’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’7’,’ Анкилоз’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’8’,’ Перелом’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’9’,’ Повреждение АКС’);

Insert into Diagnoz (ID, Diagnoz) VALUES (’10’,’ Анкилоз’);

 

Create table Doljnost

(ID Number Not Null Primary key,

Doljnost Varchar2(400));

Insert into Doljnost (ID, Doljnost) VALUES (’1’,’ Хирург’);

Insert into Doljnost (ID, Doljnost) VALUES (’2’,’ Санитар’);

Insert into Doljnost (ID, Doljnost) VALUES (’3’,’ Кардиолог’);

Insert into Doljnost (ID, Doljnost) VALUES (’4’,’ Анестезиолог’);

Insert into Doljnost (ID, Doljnost) VALUES (’5’,’ Медсестра’);

Insert into Doljnost (ID, Doljnost) VALUES (’6’,’ Главный хирург’);

 

Create table Lekarstva

(ID_Lekarstva Number Not Null Primary key,

Naimenovanie Varchar2(400));

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’1’,

’ Пеницилин’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’2’,

’Абактал’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’3’,

‘Метронидазол’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’4’,

‘Дравмадол’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’5’,

‘Найс’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’6’,

‘Анальгин’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’7’,

‘Парацетамол’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’8’,

‘Цефазолин’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’9’,

‘Цефтриаксон’);

Insert into Lekarstva (ID_Lekarstva, Naimenovanie) VALUES (’10’,

‘Аспирин’);

 

Create table Grafik

(ID Number Not Null Primary key,

№brigadi Number,

Data Date),

Constraint FK_Graf Foreign Key (№brigadi) references Brigada (№brigadi);

 

Create table Brigada

(ID_brigadi Number Not Null Primary key,

№brigadi Number);

Insert into Brigada (ID_brigadi, №brigadi) VALUES (’1’,

’1’);

Insert into Brigada (ID_brigadi, №brigadi) VALUES (’2’,

’2’);

Insert into Brigada (ID_brigadi, №brigadi) VALUES (’3’,

’3’);

Insert into Brigada (ID_brigadi, №brigadi) VALUES (’4’,

’4’);

 

Create table Brigadi_rabotnikov

(ID_brigadi Number,

ID_rabotnika Number),

Constraint FK_Br Foreign Key (ID_brigadi) references Brigada (ID_brigadi),

Constraint FK_Br2 Foreign Key (ID_rabotnika) references Medpersonal (ID_rabotnika);

 

 

Create table Medpersonal

(ID_rabotnika Number Not Null Primary key,

Doljnost Varchar2(400),

FIO Varchar2(400),

Otpusk Date),

Constraint FK_Med Foreign Key (Doljnost) references Doljnost (Doljnost);

 

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’1’,’-’, ’Иванов Иван Иванович’, ’Январь’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’2’,’-’, ‘Мазур Леонид Исаакович’, ‘Февраль’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’3’,’-’, ‘ Петров Петр Антонович ’, ‘Февраль’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’4’,’-’, ‘ Сергеева Анна Ивановна ’, ‘ Май ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’5’,’-’, ‘ Шиванчук Евгения Васильевна ’, ‘ Март ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’6’,’-’, ‘ Борисова Майя Петровна ’, ‘ Октябрь ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’7’,’-’, ‘ Страховая Инна Матвеевна ’, ‘ Декабрь ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’8’,’-’, ‘ Деулин Максим Алексеевич ’, ‘ Июнь ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’9’,’-’, ‘ Иванова Марья Петровна ’, ‘ Август ’);

Insert into Medpersonal (ID_rabotnika, Doljnost, FIO, Otpusk) VALUES (’10’,’-’, ‘ Стаканова Елена Алексеевна ’, ‘ Май ’);

 

Ниже описано создание триггера, который выполняет определенную проверку: в один рабочий день может работать только одна бригада в ортопедическом отделении. График работы бригад находится в таблице «Grafik». Операции может проводить в конкретный день, только та бригада, которая работает по графику в этот день. Если в операционном списке записана дата операции и номер бригады, которая не работает в этот день, то «всплывает» ошибка.

 

Скрипт триггера:

Сreate or replace trigger "AVB_OPERATING_LIST_T1"

BEFORE

insert or update or delete on "AVB_OPERATING_LIST"

for each row

begin

CREATE TRIGGER AVB

AFTER insert on AVB_OPERATING_LIST

declare

MIN NUMBER;

MAX NUMBER;

i NUMBER;

X NUMBER;

BEGIN

SELECT MIN(id) into MIN from AVB_OPERATING_LIST;

SELECT MAX(id) into MAX from AVB_OPERATING_LIST;

SELECT count(*) into X from AVB_GRAFIK where AVB_OPERATING_LIST. DATE_OPERATING=AVB_GRAFIK.DATE and AVB_OPERATING_LIST.№BRIGADI=AVB_GRAFIK.№Brigadi and AVB_OPERATING_LIST.ID_OPERATING=i;

for i in MIN..MAX loop

if (X=0 then NULL

else

if X=1 then DELETE FROM AVB_OPERATING_LIST where AVB_OPERATING_LIST.id=i;

end if;

end if;

end loop;

COMMIT;

END.

 




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.029 сек.