|
|
|
Триггер в postgresql
|
|||
|---|---|---|---|
|
#18+
есть такая задача: "Реализовать триггер, обеспечивающий при удалении ограничение целостности вида (1,∞)." что значит "ограничение целостности вида (1,∞)"?! И как это можно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 05:22:20 |
|
||
|
Триггер в postgresql
|
|||
|---|---|---|---|
|
#18+
один ко многим, one to many 40.9.1. Triggers on data changes если правильно понял, это учебная задачка, нельзя использовать foreign key, а реализовать функциональность с помощью trigger. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 10:03:48 |
|
||
|
Триггер в postgresql
|
|||
|---|---|---|---|
|
#18+
всё оказалось просто. Задание было таким: Есть таблица kurs, где прописаны все существующие курсы и инфа о них, а есть таблица nag, где в каждой строчке прописан среди прочего прописан какой-то номер курса. Так вот, триггер должен быть следить: как только из таблицы nag удаляют строку с прописанным курсом x, он проверяет, есть ли ещё в таблице nag строки с курсом x, если нет, то тогда он удаляет из таблицы kurs строку с курсом x. CREATE TRIGGER t_n AFTER DELETE on nag FOR EACH ROW EXECUTE PROCEDURE dell_k(); CREATE OR REPLACE FUNCTION dell_k() RETURNS TRIGGER AS $$ DECLARE astr integer; BEGIN IF TG_OP = 'DELETE' THEN astr = OLD.n_k; IF (SELECT n_k FROM nag WHERE n_k=astr) THEN DELETE FROM nag WHERE n_k = astr; ELSE DELETE FROM kurs WHERE n_k = astr; END IF; RETURN OLD; END IF; END; $$ LANGUAGE plpgsql; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2014, 16:35:26 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=128&tid=1998685]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
439ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 697ms |

| 0 / 0 |
