Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с созданием триггерной функции / 2 сообщений из 2, страница 1 из 1
15.03.2019, 16:20
    #39786841
Sasha5289
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггерной функции
Доброго времени суток! Прошу помочь мне разобраться с некоторыми трудностями в создании триггерной функции.
1)Есть главная таблица "Заказы" и дочерняя таблица "Доставка" связанные по полю "Код_заказа". Требуется при удалении записи из дочерней таблицы, удалить запись из главной.
Где то находил код на другом языке, там используется FROM DELETED. Есть ли в PostgreSQL аналогичная функция?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE OR REPLACE FUNCTION "Удаление"()
RETURNS TRIGGER AS $$
BEGIN
DELETE FROM "Заказы" 
WHERE "Заказы"."Код_заказа" IN (SELECT "Код_заказа" FROM DELETED)
RETURN NULL;
END;
$$
LANGUAGE plpgsql ;



2) Также пытался сделать триггер удаляющий все записи подходящие под условие! Триггер должен запускаться при удалении одной из таких записей. У меня к сожалению получается рекурсивный вызов триггера.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION "Просроч"()
  RETURNS trigger AS
$$
BEGIN
DELETE FROM "Доставка" 
WHERE "Доставка"."Дата_время"<CURRENT_DATE AND "Доставка"."Доставлен"=False;
RETURN NULL;
END;
$$
  LANGUAGE plpgsql
...
Рейтинг: 0 / 0
16.03.2019, 09:55
    #39787098
Morruth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с созданием триггерной функции
1)WHERE "Заказы"."Код_заказа" = OLD."Код_заказа" если я правильно понял, что вам надо

2)WHERE "Доставка"."Дата_время"<CURRENT_DATE AND "Доставка"."Доставлен"=False and "Доставка"."какой там у вас primary key" <> OLD."какой там у вас primary key"

как-то так
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с созданием триггерной функции / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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