· 8 years ago · Mar 18, 2018, 04:16 PM
1
2CREATE TABLE ÐдминиÑтратор
3(
4 IDÐдминиÑтратор integer NOT NULL ,
5 ФИО varchar(40) NOT NULL ,
6 ПаÑпорт integer NOT NULL ,
7 ÐÐ´Ñ€ÐµÑ varchar(30) NOT NULL ,
8 e_mail varchar(25) NOT NULL ,
9 Телефон integer NOT NULL ,
10 Дата_Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ date NOT NULL ,
11 Пароль varchar(20) NOT NULL ,
12 Пароль_админиÑтратора varchar(20) NOT NULL
13);
14
15ALTER TABLE ÐдминиÑтратор
16 ADD CONSTRAINT XPKÐдминиÑтратор PRIMARY KEY (IDÐдминиÑтратор);
17
18CREATE TABLE ЗаÑвки_длÑ_перÑонала
19(
20 IDКлиент integer NOT NULL ,
21 IDЗаÑвки_длÑ_перÑонала integer NOT NULL ,
22 IDÐдминиÑтратор integer NOT NULL ,
23 IDОбÑлуживающий_перÑонал integer NOT NULL ,
24 ОпиÑание_заÑвки varchar(200) NOT NULL ,
25 Дата_заÑвки date NOT NULL
26);
27
28ALTER TABLE ЗаÑвки_длÑ_перÑонала
29 ADD CONSTRAINT XPKЗаÑвки_длÑ_перÑонала PRIMARY KEY (IDКлиент,IDЗаÑвки_длÑ_перÑонала,IDÐдминиÑтратор,IDОбÑлуживающий_перÑонал);
30
31CREATE TABLE ЗаÑвки_на_бронь
32(
33 IDЗаÑвки_на_бронь integer NOT NULL ,
34 IDКлиент integer NOT NULL ,
35 IDÐомер integer NOT NULL ,
36 IDÐдминиÑтратор integer NOT NULL ,
37 Дата_начала date NOT NULL ,
38 ПродолжительноÑть integer NOT NULL DEFAULT 3,
39 КоличеÑтво_комнат integer NOT NULL DEFAULT
40);
41
42ALTER TABLE ЗаÑвки_на_бронь
43 ADD CONSTRAINT XPKЗаÑвки_на_бронь PRIMARY KEY (IDЗаÑвки_на_бронь,IDКлиент,IDÐомер,IDÐдминиÑтратор);
44
45CREATE TABLE Клиент
46(
47 IDКлиент integer NOT NULL ,
48 ФИО varchar(40) NOT NULL ,
49 ПаÑпорт integer NOT NULL ,
50 ÐÐ´Ñ€ÐµÑ varchar(30) NOT NULL ,
51 e_mail varchar(25) NOT NULL ,
52 Телефон integer NOT NULL ,
53 Дата_Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ date NOT NULL ,
54 Пароль varchar(20) NOT NULL
55);
56
57ALTER TABLE Клиент
58 ADD CONSTRAINT XPKКлиент PRIMARY KEY (IDКлиент);
59
60CREATE TABLE Ðомер
61(
62 IDÐомер integer NOT NULL ,
63 КоличеÑтво_комнат integer NOT NULL DEFAULT ,
64 Ðомер_комнаты integer NOT NULL
65);
66
67ALTER TABLE Ðомер
68 ADD CONSTRAINT XPKÐомер PRIMARY KEY (IDÐомер);
69
70CREATE TABLE ОбÑлуживающий_перÑонал
71(
72 IDОбÑлуживающий_перÑонал integer NOT NULL ,
73 ФИО varchar(40) NOT NULL ,
74 ПаÑпорт integer NOT NULL ,
75 ÐÐ´Ñ€ÐµÑ varchar(30) NOT NULL ,
76 e_mail varchar(25) NOT NULL ,
77 Дата_Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ date NOT NULL ,
78 Телефон integer NOT NULL ,
79 Пароль varchar(20) NOT NULL ,
80 Пароль_перÑонала varchar(20) NOT NULL
81);
82
83ALTER TABLE ОбÑлуживающий_перÑонал
84 ADD CONSTRAINT XPKОбÑлуживающий_перÑонал PRIMARY KEY (IDОбÑлуживающий_перÑонал);
85
86
87ALTER TABLE ЗаÑвки_длÑ_перÑонала
88 ADD CONSTRAINT R_2 FOREIGN KEY (IDКлиент) REFERENCES Клиент(IDКлиент)
89 ON UPDATE NO ACTION
90 ON DELETE NO ACTION;
91
92ALTER TABLE ЗаÑвки_длÑ_перÑонала
93 ADD CONSTRAINT R_5 FOREIGN KEY (IDÐдминиÑтратор) REFERENCES ÐдминиÑтратор(IDÐдминиÑтратор)
94 ON UPDATE NO ACTION
95 ON DELETE NO ACTION;
96
97ALTER TABLE ЗаÑвки_длÑ_перÑонала
98 ADD CONSTRAINT R_6 FOREIGN KEY (IDОбÑлуживающий_перÑонал) REFERENCES ОбÑлуживающий_перÑонал(IDОбÑлуживающий_перÑонал)
99 ON UPDATE NO ACTION
100 ON DELETE NO ACTION;
101
102
103ALTER TABLE ЗаÑвки_на_бронь
104 ADD CONSTRAINT R_1 FOREIGN KEY (IDКлиент) REFERENCES Клиент(IDКлиент)
105 ON UPDATE NO ACTION
106 ON DELETE NO ACTION;
107
108ALTER TABLE ЗаÑвки_на_бронь
109 ADD CONSTRAINT R_3 FOREIGN KEY (IDÐомер) REFERENCES Ðомер(IDÐомер)
110 ON UPDATE NO ACTION
111 ON DELETE NO ACTION;
112
113ALTER TABLE ЗаÑвки_на_бронь
114 ADD CONSTRAINT R_4 FOREIGN KEY (IDÐдминиÑтратор) REFERENCES ÐдминиÑтратор(IDÐдминиÑтратор)
115 ON UPDATE NO ACTION
116 ON DELETE NO ACTION;
117
118
119CREATE OR REPLACE FUNCTION aft_delete_tD_ÐдминиÑтратор()
120RETURNS trigger AS
121$$
122DECLARE NUMROWS INTEGER;
123BEGIN
124 /* erwin Builtin Trigger */
125 /* ÐдминиÑтратор обрабатывает ЗаÑвки_длÑ_перÑонала on parent delete restrict */
126 /* ERWIN_RELATION CHECKSUM="00022986", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
127 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
128 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
129 FK_CONSTRAINT="R_5", FK_COLUMNS="IDÐдминиÑтратор" */
130 SELECT count(*) INTO NUMROWS
131 FROM ЗаÑвки_длÑ_перÑонала
132 WHERE
133 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
134 ЗаÑвки_длÑ_перÑонала.IDÐдминиÑтратор = old.IDÐдминиÑтратор;
135 IF (NUMROWS > 0)
136 THEN
137RAISE EXCEPTION 'Cannot delete ÐдминиÑтратор because ЗаÑвки_длÑ_перÑонала exists.';
138 END IF;
139
140 * erwin Builtin Trigger *
141 * ÐдминиÑтратор обрабатывает ЗаÑвки_на_бронь on parent delete restrict *
142 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
143 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
144 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
145 FK_CONSTRAINT="R_4", FK_COLUMNS="IDÐдминиÑтратор" *
146 SELECT count(*) INTO NUMROWS
147 FROM ЗаÑвки_на_бронь
148 WHERE
149 * %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") *
150 ЗаÑвки_на_бронь.IDÐдминиÑтратор = old.IDÐдминиÑтратор;
151 IF (NUMROWS > 0)
152 THEN
153 raise_application_error(
154 -20001,
155 'Cannot delete ÐдминиÑтратор because ЗаÑвки_на_бронь exists.'
156 );
157 END IF;
158
159
160-- erwin Builtin Trigger
161END;
162
163$$
164LANGUAGE 'plpgsql';
165
166CREATE TRIGGER tD_ÐдминиÑтратор AFTER DELETE ON public."ÐдминиÑтратор" for each row
167EXECUTE PROCEDURE aft_delete_tD_ÐдминиÑтратор();
168
169
170CREATE OR REPLACE FUNCTION aft_update_U_ÐдминиÑтратор()
171RETURNS trigger AS
172$$
173DECLARE NUMROWS INTEGER;
174BEGIN
175 /* erwin Builtin Trigger */
176 /* ÐдминиÑтратор обрабатывает ЗаÑвки_длÑ_перÑонала on parent update restrict */
177 /* ERWIN_RELATION CHECKSUM="00028287", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
178 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
179 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
180 FK_CONSTRAINT="R_5", FK_COLUMNS="IDÐдминиÑтратор" */
181 IF
182 /* %JoinPKPK( %Old, %New," <> "," OR ") */
183 old.IDÐдминиÑтратор <> new.IDÐдминиÑтратор
184 THEN
185 SELECT count(*) INTO NUMROWS
186 FROM ЗаÑвки_длÑ_перÑонала
187 WHERE
188 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
189 ЗаÑвки_длÑ_перÑонала.IDÐдминиÑтратор = old.IDÐдминиÑтратор;
190 IF (NUMROWS > 0)
191 THEN
192RAISE EXCEPTION 'Cannot update ÐдминиÑтратор because ЗаÑвки_длÑ_перÑонала exists.';
193 END IF;
194 END IF;
195
196 * erwin Builtin Trigger *
197 * ÐдминиÑтратор обрабатывает ЗаÑвки_на_бронь on parent update restrict *
198 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
199 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
200 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
201 FK_CONSTRAINT="R_4", FK_COLUMNS="IDÐдминиÑтратор" *
202 IF
203 * %JoinPKPK( %Old, %New," <> "," OR ") *
204 old.IDÐдминиÑтратор <> new.IDÐдминиÑтратор
205 THEN
206 SELECT count(*) INTO NUMROWS
207 FROM ЗаÑвки_на_бронь
208 WHERE
209 * %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") *
210 ЗаÑвки_на_бронь.IDÐдминиÑтратор = old.IDÐдминиÑтратор;
211 IF (NUMROWS > 0)
212 THEN
213 raise_application_error(
214 -20005,
215 'Cannot update ÐдминиÑтратор because ЗаÑвки_на_бронь exists.'
216 );
217 END IF;
218 END IF;
219
220
221-- erwin Builtin Trigger
222END;
223
224$$
225LANGUAGE 'plpgsql';
226
227CREATE TRIGGER tU_ÐдминиÑтратор AFTER UPDATE ON public."ÐдминиÑтратор" for each row
228EXECUTE PROCEDURE aft_update_U_ÐдминиÑтратор();
229
230
231
232CREATE OR REPLACE FUNCTION before_insert_I_ЗаÑвки_длÑ_перÑонала ()
233RETURNS trigger AS
234$$
235DECLARE NUMROWS INTEGER;
236BEGIN
237 /* erwin Builtin Trigger */
238 /* ОбÑлуживающий_перÑонал выполнÑет ЗаÑвки_длÑ_перÑонала on child insert restrict */
239 /* ERWIN_RELATION CHECKSUM="00036bb6", PARENT_OWNER="", PARENT_TABLE="ОбÑлуживающий_перÑонал"
240 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
241 P2C_VERB_PHRASE="выполнÑет", C2P_VERB_PHRASE="",
242 FK_CONSTRAINT="R_6", FK_COLUMNS="IDОбÑлуживающий_перÑонал" */
243 SELECT count(*) INTO NUMROWS
244 FROM ОбÑлуживающий_перÑонал
245 WHERE
246 /* %JoinFKPK( %New,ОбÑлуживающий_перÑонал," = "," AND") */
247 new.IDОбÑлуживающий_перÑонал = ОбÑлуживающий_перÑонал.IDОбÑлуживающий_перÑонал;
248 IF (
249 /* %NotnullFK( %New," IS NOT NULL AND") */
250
251 NUMROWS = 0
252 )
253 THEN
254RAISE EXCEPTION 'Cannot insert ЗаÑвки_длÑ_перÑонала because ОбÑлуживающий_перÑонал does not exist.';
255 END IF;
256
257 * erwin Builtin Trigger *
258 * ÐдминиÑтратор обрабатывает ЗаÑвки_длÑ_перÑонала on child insert restrict *
259 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
260 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
261 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
262 FK_CONSTRAINT="R_5", FK_COLUMNS="IDÐдминиÑтратор" *
263 SELECT count(*) INTO NUMROWS
264 FROM ÐдминиÑтратор
265 WHERE
266 * %JoinFKPK( %New,ÐдминиÑтратор," = "," AND") *
267 new.IDÐдминиÑтратор = ÐдминиÑтратор.IDÐдминиÑтратор;
268 IF (
269 * %NotnullFK( %New," IS NOT NULL AND") *
270
271 NUMROWS = 0
272 )
273 THEN
274 raise_application_error(
275 -20002,
276 'Cannot insert ЗаÑвки_длÑ_перÑонала because ÐдминиÑтратор does not exist.'
277 );
278 END IF;
279
280 * erwin Builtin Trigger *
281 * Клиент Ñоздает ЗаÑвки_длÑ_перÑонала on child insert restrict *
282 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
283 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
284 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
285 FK_CONSTRAINT="R_2", FK_COLUMNS="IDКлиент" *
286 SELECT count(*) INTO NUMROWS
287 FROM Клиент
288 WHERE
289 * %JoinFKPK( %New,Клиент," = "," AND") *
290 new.IDКлиент = Клиент.IDКлиент;
291 IF (
292 * %NotnullFK( %New," IS NOT NULL AND") *
293
294 NUMROWS = 0
295 )
296 THEN
297 raise_application_error(
298 -20002,
299 'Cannot insert ЗаÑвки_длÑ_перÑонала because Клиент does not exist.'
300 );
301 END IF;
302
303
304-- erwin Builtin Trigger
305END;
306
307$$
308LANGUAGE 'plpgsql';
309
310CREATE TRIGGER tI_ЗаÑвки_длÑ_перÑонала BEFORE INSERT ON public."ЗаÑвки_длÑ_перÑонала" for each row
311EXECUTE PROCEDURE before_insert_I_ЗаÑвки_длÑ_перÑонала ();
312
313
314CREATE OR REPLACE FUNCTION aft_update_U_ЗаÑвки_длÑ_перÑонала()
315RETURNS trigger AS
316$$
317DECLARE NUMROWS INTEGER;
318BEGIN
319 /* erwin Builtin Trigger */
320 /* ОбÑлуживающий_перÑонал выполнÑет ЗаÑвки_длÑ_перÑонала on child update restrict */
321 /* ERWIN_RELATION CHECKSUM="00037ae1", PARENT_OWNER="", PARENT_TABLE="ОбÑлуживающий_перÑонал"
322 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
323 P2C_VERB_PHRASE="выполнÑет", C2P_VERB_PHRASE="",
324 FK_CONSTRAINT="R_6", FK_COLUMNS="IDОбÑлуживающий_перÑонал" */
325 SELECT count(*) INTO NUMROWS
326 FROM ОбÑлуживающий_перÑонал
327 WHERE
328 /* %JoinFKPK( %New,ОбÑлуживающий_перÑонал," = "," AND") */
329 new.IDОбÑлуживающий_перÑонал = ОбÑлуживающий_перÑонал.IDОбÑлуживающий_перÑонал;
330 IF (
331 /* %NotnullFK( %New," IS NOT NULL AND") */
332
333 NUMROWS = 0
334 )
335 THEN
336RAISE EXCEPTION 'Cannot update ЗаÑвки_длÑ_перÑонала because ОбÑлуживающий_перÑонал does not exist.';
337 END IF;
338
339 * erwin Builtin Trigger *
340 * ÐдминиÑтратор обрабатывает ЗаÑвки_длÑ_перÑонала on child update restrict *
341 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
342 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
343 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
344 FK_CONSTRAINT="R_5", FK_COLUMNS="IDÐдминиÑтратор" *
345 SELECT count(*) INTO NUMROWS
346 FROM ÐдминиÑтратор
347 WHERE
348 * %JoinFKPK( %New,ÐдминиÑтратор," = "," AND") *
349 new.IDÐдминиÑтратор = ÐдминиÑтратор.IDÐдминиÑтратор;
350 IF (
351 * %NotnullFK( %New," IS NOT NULL AND") *
352
353 NUMROWS = 0
354 )
355 THEN
356 raise_application_error(
357 -20007,
358 'Cannot update ЗаÑвки_длÑ_перÑонала because ÐдминиÑтратор does not exist.'
359 );
360 END IF;
361
362 * erwin Builtin Trigger *
363 * Клиент Ñоздает ЗаÑвки_длÑ_перÑонала on child update restrict *
364 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
365 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
366 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
367 FK_CONSTRAINT="R_2", FK_COLUMNS="IDКлиент" *
368 SELECT count(*) INTO NUMROWS
369 FROM Клиент
370 WHERE
371 * %JoinFKPK( %New,Клиент," = "," AND") *
372 new.IDКлиент = Клиент.IDКлиент;
373 IF (
374 * %NotnullFK( %New," IS NOT NULL AND") *
375
376 NUMROWS = 0
377 )
378 THEN
379 raise_application_error(
380 -20007,
381 'Cannot update ЗаÑвки_длÑ_перÑонала because Клиент does not exist.'
382 );
383 END IF;
384
385
386-- erwin Builtin Trigger
387END;
388
389$$
390LANGUAGE 'plpgsql';
391
392CREATE TRIGGER tU_ЗаÑвки_длÑ_перÑонала AFTER UPDATE ON public."ЗаÑвки_длÑ_перÑонала" for each row
393EXECUTE PROCEDURE aft_update_U_ЗаÑвки_длÑ_перÑонала();
394
395
396
397CREATE OR REPLACE FUNCTION before_insert_I_ЗаÑвки_на_бронь ()
398RETURNS trigger AS
399$$
400DECLARE NUMROWS INTEGER;
401BEGIN
402 /* erwin Builtin Trigger */
403 /* ÐдминиÑтратор обрабатывает ЗаÑвки_на_бронь on child insert restrict */
404 /* ERWIN_RELATION CHECKSUM="000334a6", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
405 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
406 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
407 FK_CONSTRAINT="R_4", FK_COLUMNS="IDÐдминиÑтратор" */
408 SELECT count(*) INTO NUMROWS
409 FROM ÐдминиÑтратор
410 WHERE
411 /* %JoinFKPK( %New,ÐдминиÑтратор," = "," AND") */
412 new.IDÐдминиÑтратор = ÐдминиÑтратор.IDÐдминиÑтратор;
413 IF (
414 /* %NotnullFK( %New," IS NOT NULL AND") */
415
416 NUMROWS = 0
417 )
418 THEN
419RAISE EXCEPTION 'Cannot insert ЗаÑвки_на_бронь because ÐдминиÑтратор does not exist.';
420 END IF;
421
422 * erwin Builtin Trigger *
423 * Ðомер предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸ ЗаÑвки_на_бронь on child insert restrict *
424 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Ðомер"
425 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
426 P2C_VERB_PHRASE="предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸", C2P_VERB_PHRASE="",
427 FK_CONSTRAINT="R_3", FK_COLUMNS="IDÐомер" *
428 SELECT count(*) INTO NUMROWS
429 FROM Ðомер
430 WHERE
431 * %JoinFKPK( %New,Ðомер," = "," AND") *
432 new.IDÐомер = Ðомер.IDÐомер;
433 IF (
434 * %NotnullFK( %New," IS NOT NULL AND") *
435
436 NUMROWS = 0
437 )
438 THEN
439 raise_application_error(
440 -20002,
441 'Cannot insert ЗаÑвки_на_бронь because Ðомер does not exist.'
442 );
443 END IF;
444
445 * erwin Builtin Trigger *
446 * Клиент Ñоздает ЗаÑвки_на_бронь on child insert restrict *
447 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
448 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
449 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
450 FK_CONSTRAINT="R_1", FK_COLUMNS="IDКлиент" *
451 SELECT count(*) INTO NUMROWS
452 FROM Клиент
453 WHERE
454 * %JoinFKPK( %New,Клиент," = "," AND") *
455 new.IDКлиент = Клиент.IDКлиент;
456 IF (
457 * %NotnullFK( %New," IS NOT NULL AND") *
458
459 NUMROWS = 0
460 )
461 THEN
462 raise_application_error(
463 -20002,
464 'Cannot insert ЗаÑвки_на_бронь because Клиент does not exist.'
465 );
466 END IF;
467
468
469-- erwin Builtin Trigger
470END;
471
472$$
473LANGUAGE 'plpgsql';
474
475CREATE TRIGGER tI_ЗаÑвки_на_бронь BEFORE INSERT ON public."ЗаÑвки_на_бронь" for each row
476EXECUTE PROCEDURE before_insert_I_ЗаÑвки_на_бронь ();
477
478
479CREATE OR REPLACE FUNCTION aft_update_U_ЗаÑвки_на_бронь()
480RETURNS trigger AS
481$$
482DECLARE NUMROWS INTEGER;
483BEGIN
484 /* erwin Builtin Trigger */
485 /* ÐдминиÑтратор обрабатывает ЗаÑвки_на_бронь on child update restrict */
486 /* ERWIN_RELATION CHECKSUM="00032f90", PARENT_OWNER="", PARENT_TABLE="ÐдминиÑтратор"
487 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
488 P2C_VERB_PHRASE="обрабатывает", C2P_VERB_PHRASE="",
489 FK_CONSTRAINT="R_4", FK_COLUMNS="IDÐдминиÑтратор" */
490 SELECT count(*) INTO NUMROWS
491 FROM ÐдминиÑтратор
492 WHERE
493 /* %JoinFKPK( %New,ÐдминиÑтратор," = "," AND") */
494 new.IDÐдминиÑтратор = ÐдминиÑтратор.IDÐдминиÑтратор;
495 IF (
496 /* %NotnullFK( %New," IS NOT NULL AND") */
497
498 NUMROWS = 0
499 )
500 THEN
501RAISE EXCEPTION 'Cannot update ЗаÑвки_на_бронь because ÐдминиÑтратор does not exist.';
502 END IF;
503
504 * erwin Builtin Trigger *
505 * Ðомер предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸ ЗаÑвки_на_бронь on child update restrict *
506 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Ðомер"
507 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
508 P2C_VERB_PHRASE="предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸", C2P_VERB_PHRASE="",
509 FK_CONSTRAINT="R_3", FK_COLUMNS="IDÐомер" *
510 SELECT count(*) INTO NUMROWS
511 FROM Ðомер
512 WHERE
513 * %JoinFKPK( %New,Ðомер," = "," AND") *
514 new.IDÐомер = Ðомер.IDÐомер;
515 IF (
516 * %NotnullFK( %New," IS NOT NULL AND") *
517
518 NUMROWS = 0
519 )
520 THEN
521 raise_application_error(
522 -20007,
523 'Cannot update ЗаÑвки_на_бронь because Ðомер does not exist.'
524 );
525 END IF;
526
527 * erwin Builtin Trigger *
528 * Клиент Ñоздает ЗаÑвки_на_бронь on child update restrict *
529 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
530 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
531 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
532 FK_CONSTRAINT="R_1", FK_COLUMNS="IDКлиент" *
533 SELECT count(*) INTO NUMROWS
534 FROM Клиент
535 WHERE
536 * %JoinFKPK( %New,Клиент," = "," AND") *
537 new.IDКлиент = Клиент.IDКлиент;
538 IF (
539 * %NotnullFK( %New," IS NOT NULL AND") *
540
541 NUMROWS = 0
542 )
543 THEN
544 raise_application_error(
545 -20007,
546 'Cannot update ЗаÑвки_на_бронь because Клиент does not exist.'
547 );
548 END IF;
549
550
551-- erwin Builtin Trigger
552END;
553
554$$
555LANGUAGE 'plpgsql';
556
557CREATE TRIGGER tU_ЗаÑвки_на_бронь AFTER UPDATE ON public."ЗаÑвки_на_бронь" for each row
558EXECUTE PROCEDURE aft_update_U_ЗаÑвки_на_бронь();
559
560
561
562CREATE OR REPLACE FUNCTION aft_delete_tD_Клиент()
563RETURNS trigger AS
564$$
565DECLARE NUMROWS INTEGER;
566BEGIN
567 /* erwin Builtin Trigger */
568 /* Клиент Ñоздает ЗаÑвки_длÑ_перÑонала on parent delete restrict */
569 /* ERWIN_RELATION CHECKSUM="0001f43b", PARENT_OWNER="", PARENT_TABLE="Клиент"
570 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
571 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
572 FK_CONSTRAINT="R_2", FK_COLUMNS="IDКлиент" */
573 SELECT count(*) INTO NUMROWS
574 FROM ЗаÑвки_длÑ_перÑонала
575 WHERE
576 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
577 ЗаÑвки_длÑ_перÑонала.IDКлиент = old.IDКлиент;
578 IF (NUMROWS > 0)
579 THEN
580RAISE EXCEPTION 'Cannot delete Клиент because ЗаÑвки_длÑ_перÑонала exists.';
581 END IF;
582
583 * erwin Builtin Trigger *
584 * Клиент Ñоздает ЗаÑвки_на_бронь on parent delete restrict *
585 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
586 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
587 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
588 FK_CONSTRAINT="R_1", FK_COLUMNS="IDКлиент" *
589 SELECT count(*) INTO NUMROWS
590 FROM ЗаÑвки_на_бронь
591 WHERE
592 * %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") *
593 ЗаÑвки_на_бронь.IDКлиент = old.IDКлиент;
594 IF (NUMROWS > 0)
595 THEN
596 raise_application_error(
597 -20001,
598 'Cannot delete Клиент because ЗаÑвки_на_бронь exists.'
599 );
600 END IF;
601
602
603-- erwin Builtin Trigger
604END;
605
606$$
607LANGUAGE 'plpgsql';
608
609CREATE TRIGGER tD_Клиент AFTER DELETE ON public."Клиент" for each row
610EXECUTE PROCEDURE aft_delete_tD_Клиент();
611
612
613CREATE OR REPLACE FUNCTION aft_update_U_Клиент()
614RETURNS trigger AS
615$$
616DECLARE NUMROWS INTEGER;
617BEGIN
618 /* erwin Builtin Trigger */
619 /* Клиент Ñоздает ЗаÑвки_длÑ_перÑонала on parent update restrict */
620 /* ERWIN_RELATION CHECKSUM="000243b2", PARENT_OWNER="", PARENT_TABLE="Клиент"
621 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
622 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
623 FK_CONSTRAINT="R_2", FK_COLUMNS="IDКлиент" */
624 IF
625 /* %JoinPKPK( %Old, %New," <> "," OR ") */
626 old.IDКлиент <> new.IDКлиент
627 THEN
628 SELECT count(*) INTO NUMROWS
629 FROM ЗаÑвки_длÑ_перÑонала
630 WHERE
631 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
632 ЗаÑвки_длÑ_перÑонала.IDКлиент = old.IDКлиент;
633 IF (NUMROWS > 0)
634 THEN
635RAISE EXCEPTION 'Cannot update Клиент because ЗаÑвки_длÑ_перÑонала exists.';
636 END IF;
637 END IF;
638
639 * erwin Builtin Trigger *
640 * Клиент Ñоздает ЗаÑвки_на_бронь on parent update restrict *
641 * ERWIN_RELATION CHECKSUM="00000000", PARENT_OWNER="", PARENT_TABLE="Клиент"
642 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
643 P2C_VERB_PHRASE="Ñоздает", C2P_VERB_PHRASE="",
644 FK_CONSTRAINT="R_1", FK_COLUMNS="IDКлиент" *
645 IF
646 * %JoinPKPK( %Old, %New," <> "," OR ") *
647 old.IDКлиент <> new.IDКлиент
648 THEN
649 SELECT count(*) INTO NUMROWS
650 FROM ЗаÑвки_на_бронь
651 WHERE
652 * %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") *
653 ЗаÑвки_на_бронь.IDКлиент = old.IDКлиент;
654 IF (NUMROWS > 0)
655 THEN
656 raise_application_error(
657 -20005,
658 'Cannot update Клиент because ЗаÑвки_на_бронь exists.'
659 );
660 END IF;
661 END IF;
662
663
664-- erwin Builtin Trigger
665END;
666
667$$
668LANGUAGE 'plpgsql';
669
670CREATE TRIGGER tU_Клиент AFTER UPDATE ON public."Клиент" for each row
671EXECUTE PROCEDURE aft_update_U_Клиент();
672
673
674
675CREATE OR REPLACE FUNCTION aft_delete_tD_Ðомер()
676RETURNS trigger AS
677$$
678DECLARE NUMROWS INTEGER;
679BEGIN
680 /* erwin Builtin Trigger */
681 /* Ðомер предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸ ЗаÑвки_на_бронь on parent delete restrict */
682 /* ERWIN_RELATION CHECKSUM="0000e322", PARENT_OWNER="", PARENT_TABLE="Ðомер"
683 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
684 P2C_VERB_PHRASE="предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸", C2P_VERB_PHRASE="",
685 FK_CONSTRAINT="R_3", FK_COLUMNS="IDÐомер" */
686 SELECT count(*) INTO NUMROWS
687 FROM ЗаÑвки_на_бронь
688 WHERE
689 /* %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") */
690 ЗаÑвки_на_бронь.IDÐомер = old.IDÐомер;
691 IF (NUMROWS > 0)
692 THEN
693RAISE EXCEPTION 'Cannot delete Ðомер because ЗаÑвки_на_бронь exists.';
694 END IF;
695
696
697-- erwin Builtin Trigger
698END;
699
700$$
701LANGUAGE 'plpgsql';
702
703CREATE TRIGGER tD_Ðомер AFTER DELETE ON public."Ðомер" for each row
704EXECUTE PROCEDURE aft_delete_tD_Ðомер();
705
706
707CREATE OR REPLACE FUNCTION aft_update_U_Ðомер()
708RETURNS trigger AS
709$$
710DECLARE NUMROWS INTEGER;
711BEGIN
712 /* erwin Builtin Trigger */
713 /* Ðомер предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸ ЗаÑвки_на_бронь on parent update restrict */
714 /* ERWIN_RELATION CHECKSUM="00010f62", PARENT_OWNER="", PARENT_TABLE="Ðомер"
715 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_на_бронь"
716 P2C_VERB_PHRASE="предоÑтавлÑетÑÑ Ð¿Ñ€Ð¸", C2P_VERB_PHRASE="",
717 FK_CONSTRAINT="R_3", FK_COLUMNS="IDÐомер" */
718 IF
719 /* %JoinPKPK( %Old, %New," <> "," OR ") */
720 old.IDÐомер <> new.IDÐомер
721 THEN
722 SELECT count(*) INTO NUMROWS
723 FROM ЗаÑвки_на_бронь
724 WHERE
725 /* %JoinFKPK(ЗаÑвки_на_бронь, %Old," = "," AND") */
726 ЗаÑвки_на_бронь.IDÐомер = old.IDÐомер;
727 IF (NUMROWS > 0)
728 THEN
729RAISE EXCEPTION 'Cannot update Ðомер because ЗаÑвки_на_бронь exists.';
730 END IF;
731 END IF;
732
733
734-- erwin Builtin Trigger
735END;
736
737$$
738LANGUAGE 'plpgsql';
739
740CREATE TRIGGER tU_Ðомер AFTER UPDATE ON public."Ðомер" for each row
741EXECUTE PROCEDURE aft_update_U_Ðомер();
742
743
744
745CREATE OR REPLACE FUNCTION aft_delete_tD_ОбÑлуживающий_перÑонал()
746RETURNS trigger AS
747$$
748DECLARE NUMROWS INTEGER;
749BEGIN
750 /* erwin Builtin Trigger */
751 /* ОбÑлуживающий_перÑонал выполнÑет ЗаÑвки_длÑ_перÑонала on parent delete restrict */
752 /* ERWIN_RELATION CHECKSUM="0001241e", PARENT_OWNER="", PARENT_TABLE="ОбÑлуживающий_перÑонал"
753 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
754 P2C_VERB_PHRASE="выполнÑет", C2P_VERB_PHRASE="",
755 FK_CONSTRAINT="R_6", FK_COLUMNS="IDОбÑлуживающий_перÑонал" */
756 SELECT count(*) INTO NUMROWS
757 FROM ЗаÑвки_длÑ_перÑонала
758 WHERE
759 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
760 ЗаÑвки_длÑ_перÑонала.IDОбÑлуживающий_перÑонал = old.IDОбÑлуживающий_перÑонал;
761 IF (NUMROWS > 0)
762 THEN
763RAISE EXCEPTION 'Cannot delete ОбÑлуживающий_перÑонал because ЗаÑвки_длÑ_перÑонала exists.';
764 END IF;
765
766
767-- erwin Builtin Trigger
768END;
769
770$$
771LANGUAGE 'plpgsql';
772
773CREATE TRIGGER tD_ОбÑлуживающий_перÑонал AFTER DELETE ON public."ОбÑлуживающий_перÑонал" for each row
774EXECUTE PROCEDURE aft_delete_tD_ОбÑлуживающий_перÑонал();
775
776
777CREATE OR REPLACE FUNCTION aft_update_U_ОбÑлуживающий_перÑонал()
778RETURNS trigger AS
779$$
780DECLARE NUMROWS INTEGER;
781BEGIN
782 /* erwin Builtin Trigger */
783 /* ОбÑлуживающий_перÑонал выполнÑет ЗаÑвки_длÑ_перÑонала on parent update restrict */
784 /* ERWIN_RELATION CHECKSUM="0001542c", PARENT_OWNER="", PARENT_TABLE="ОбÑлуживающий_перÑонал"
785 CHILD_OWNER="", CHILD_TABLE="ЗаÑвки_длÑ_перÑонала"
786 P2C_VERB_PHRASE="выполнÑет", C2P_VERB_PHRASE="",
787 FK_CONSTRAINT="R_6", FK_COLUMNS="IDОбÑлуживающий_перÑонал" */
788 IF
789 /* %JoinPKPK( %Old, %New," <> "," OR ") */
790 old.IDОбÑлуживающий_перÑонал <> new.IDОбÑлуживающий_перÑонал
791 THEN
792 SELECT count(*) INTO NUMROWS
793 FROM ЗаÑвки_длÑ_перÑонала
794 WHERE
795 /* %JoinFKPK(ЗаÑвки_длÑ_перÑонала, %Old," = "," AND") */
796 ЗаÑвки_длÑ_перÑонала.IDОбÑлуживающий_перÑонал = old.IDОбÑлуживающий_перÑонал;
797 IF (NUMROWS > 0)
798 THEN
799RAISE EXCEPTION 'Cannot update ОбÑлуживающий_перÑонал because ЗаÑвки_длÑ_перÑонала exists.';
800 END IF;
801 END IF;
802
803
804-- erwin Builtin Trigger
805END;
806
807$$
808LANGUAGE 'plpgsql';
809
810CREATE TRIGGER tU_ОбÑлуживающий_перÑонал AFTER UPDATE ON public."ОбÑлуживающий_перÑонал" for each row
811EXECUTE PROCEDURE aft_update_U_ОбÑлуживающий_перÑонал();