powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с созданием триггерной функции
2 сообщений из 2, страница 1 из 1
Помогите с созданием триггерной функции
    #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
Помогите с созданием триггерной функции
    #39787098
Morruth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1)WHERE "Заказы"."Код_заказа" = OLD."Код_заказа" если я правильно понял, что вам надо

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

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


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