Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер BEFORE DELETE / 2 сообщений из 2, страница 1 из 1
22.05.2008, 09:22
    #35327591
Youra Polishuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер BEFORE DELETE
При удалении из таблицы doc_tree записи, нужно удалять все записи
из подчиненной таблицы doc_gen.
Напирмер удаляем запись с id = 12 из таблицы doc_tree

Код: plaintext
delete from doc_tree where id= 12 ;

Вот что выдает:

Код: plaintext
1.
2.
3.
4.
ERROR:  колонка "id_low" не существует
СТРОКА 1:delete from doc_gen where id_low= $1 
                                ^
ЗАПРОС:  delete from doc_gen where id_low= $1 
КОНТЕКСТ:  PL/pgSQL function "del_doc_tree_record" line 2 at SQL statement

Функция и триггер для удаления из таблицы doc_gen

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE FUNCTION del_doc_tree_record()
RETURNS opaque AS $$
BEGIN
  delete from doc_gen where id_low=OLD.id;  
END;
$$ LANGUAGE 'plpgsql';

CREATE TRIGGER del_doc_tree_record_trig
BEFORE DELETE
 ON doc_tree FOR EACH ROW
 EXECUTE PROCEDURE del_doc_tree_record();

Как указать триггерной функции, что удаляется именно запись с id=12

Код: plaintext
1.
  delete from doc_gen where [FIXED]id_low=OLD.id[/FIXED];  
                                                  ^^^ Как указать?
...
Рейтинг: 0 / 0
22.05.2008, 09:24
    #35327592
Youra Polishuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер BEFORE DELETE
Разобрался.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер BEFORE DELETE / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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