powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер в postgresql
3 сообщений из 3, страница 1 из 1
Триггер в postgresql
    #38625298
veruviisusa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть такая задача: "Реализовать триггер, обеспечивающий при удалении ограничение целостности вида (1,∞)."
что значит "ограничение целостности вида (1,∞)"?! И как это можно сделать?
...
Рейтинг: 0 / 0
Триггер в postgresql
    #38625443
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
один ко многим, one to many

40.9.1. Triggers on data changes

если правильно понял, это учебная задачка, нельзя использовать foreign key, а реализовать функциональность с помощью trigger.
...
Рейтинг: 0 / 0
Триггер в postgresql
    #38644514
veruviisusa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё оказалось просто.
Задание было таким: Есть таблица 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;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер в postgresql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]