КАТЕГОРИИ: Архитектура-(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; Просмотров: 292; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |