-
Notifications
You must be signed in to change notification settings - Fork 0
/
triggers.sql
188 lines (142 loc) · 4.2 KB
/
triggers.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
use dbproje;
DROP TRIGGER IF EXISTS kuruluş_tip;
DELIMITER $$
CREATE TRIGGER kuruluş_tip
AFTER INSERT
ON kuruluş FOR EACH ROW
BEGIN
IF NEW.tip = 0 THEN
INSERT INTO şirket(şirket_id,değer,alan)
VALUES(new.kuruluş_id,"","none");
END IF;
IF NEW.tip = 1 THEN
INSERT INTO üniversite(üni_id,derece)
VALUES(new.kuruluş_id,"");
END IF;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS kişi_tip;
DELIMITER $$
CREATE TRIGGER kişi_tip
AFTER INSERT
ON kişi FOR EACH ROW
BEGIN
DECLARE vBölüm int;
select MIN(bölüm_no) from bölüm INTO vBölüm;
IF NEW.tip = 0 THEN
INSERT INTO öğrenci(öğrenci_no,bölüm,sınıf, gpa)
VALUES(new.kişi_id,vBölüm,1,0);
END IF;
IF NEW.tip = 1 THEN
INSERT INTO çalışan(çalışan_id,maaş)
VALUES(new.kişi_id,null);
END IF;
IF NEW.tip = 2 THEN
INSERT INTO eğitmen(ins_no,bölüm,tip)
VALUES(new.kişi_id,vBölüm,2);
END IF;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS eğitmen_tip;
DELIMITER $$
CREATE TRIGGER eğitmen_tip
AFTER INSERT
ON eğitmen FOR EACH ROW
BEGIN
IF NEW.tip = 0 THEN
INSERT INTO asistan(asistan_no,tez_konusu)
VALUES(new.ins_no,"");
END IF;
IF NEW.tip = 1 THEN
INSERT INTO araştırma_görevlisi(araştırma_görevlisi_no,proje_adı)
VALUES(new.ins_no,"");
END IF;
IF NEW.tip = 2 THEN
INSERT INTO öğretim_üyesi(öğretim_üyesi_no,ünvan)
VALUES(new.ins_no,ünvan);
END IF;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS kişi_sil;
DELIMITER $$
CREATE TRIGGER kişi_sil
before delete
ON kişi FOR EACH ROW
BEGIN
IF old.tip = 0 THEN
delete from öğrenci where old.kişi_id=öğrenci_no;
END IF;
IF old.tip = 1 THEN
delete from çalışan where old.kişi_id=çalışan_id;
END IF;
IF old.tip = 2 THEN
delete from eğitmen where OLD.kişi_id=ins_no;
END IF;
delete from bağlantı where old.kişi_id = kişi_1;
delete from bağlantı where old.kişi_id = kişi_2;
delete from çalışır where old.kişi_id=kişi_id;
delete from referans where old.kişi_id = ref_alan;
delete from referans where old.kişi_id = ref;
delete from sertifika where old.kişi_id = kişi_id;
delete from proje where old.kişi_id = kişi_id;
delete from ilgi_alanları where old.kişi_id = kişi_id;
delete from yetenekler where old.kişi_id = kişi_id;
delete from profil_aktivitesi where old.kişi_id = kişi_id;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS kuruluş_sil;
DELIMITER $$
CREATE TRIGGER kuruluş_sil
before delete
ON kuruluş FOR EACH ROW
BEGIN
IF old.tip = 0 THEN
delete from şirket where old.kuruluş_id=şirket_id;
END IF;
IF old.tip = 1 THEN
delete from üniversite where old.kuruluş_id=üni_id;
END IF;
delete from çalışır where old.kuruluş_id=kuruluş_id;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS eğitmen_sil;
DELIMITER $$
CREATE TRIGGER eğitmen_sil
before delete
ON eğitmen FOR EACH ROW
BEGIN
IF old.tip = 0 THEN
delete from asistan where old.ins_no=asistan_no;
delete from asistanlik_eder where old.ins_no = asistan_no;
END IF;
IF old.tip = 1 THEN
delete from çalışan where old.ins_no=araştırma_görevlisi_no;
END IF;
IF old.tip = 2 THEN
delete from öğretim_üyesi where OLD.ins_no=öğretim_üyesi_no;
END IF;
delete from okul_projesi where old.ins_no = ins_no;
END$$
DELIMITER ;
DROP TRIGGER IF EXISTS öğretim_üyesi_sil;
DELIMITER $$
CREATE TRIGGER öğretim_üyesi_sil
before delete
ON öğretim_üyesi FOR EACH ROW
BEGIN
delete from rektörler where old.öğretim_üyesi_no = rektör_id;
delete from dekanlar where old.öğretim_üyesi_no = dekan_id;
delete from bölüm_başkanlar where old.öğretim_üyesi_no = bölüm_başkanı_id;
END$$
DROP TRIGGER IF EXISTS öğrenci_sil;
DELIMITER $$
CREATE TRIGGER öğrenci_sil
before delete
ON öğrenci FOR EACH ROW
BEGIN
delete from tez where old.öğrenci_no = öğrenci_no;
delete from okul_projesi where old.öğrenci_no = öğrenci_no;
delete from notlar where old.öğrenci_no = öğrenci_no;
END$$
DELIMITER ;
DELIMITER ;