Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сново про триггеры... / 4 сообщений из 4, страница 1 из 1
19.01.2006, 14:03
    #33491815
Opilki_Inside
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сново про триггеры...
У меня возникла такая проблема... есть таблица, к ней привязан триггер на insert/update/delete когда срабатывает этот триггер, мне нужно скидывать измененные данные в другую таблицу. Проблема в том что имя таблицы берется из переменной

Выглядит это примерно следующим образом

Код: plaintext
1.
2.
3.
4.
IF (TG_OP = 'UPDATE') THEN
	    query := 'insert into '||TG_RELNAME||'_audit select '||quote_literal('u')||', now(), user, OLD.*';
            EXECUTE query;
            RETURN NEW;
END IF;
...
Рейтинг: 0 / 0
20.01.2006, 03:21
    #33493190
фффф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сново про триггеры...
На pl/pgsql не получится. Можно на pl/perl или pl/tcl. Поищите здесь или в архивах pgsql-general.
...
Рейтинг: 0 / 0
20.01.2006, 12:29
    #33493906
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сново про триггеры...
ффффНа pl/pgsql не получится. Можно на pl/perl или pl/tcl. Поищите здесь или в архивах pgsql-general. В 7.3.4 у меня действительно не получаицца (даже вариант описанный в справке к 8.0 - 35.10. Trigger Procedures)

а в 8.01 работает через прокладку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
CREATE OR REPLACE FUNCTION tr_test1()
  RETURNS "trigger" AS
$BODY$DECLARE
	query text;     
BEGIN
	IF (TG_OP = 'UPDATE') THEN
	--INSERT INTO test_audit SELECT 'U', now(), user, OLD.*;

	SELECT OLD.* Into temporary old_temp;
	
	query := 'insert into ' ||TG_RELNAME|| '_audit select ' || quote_literal('u') ||',  now(), user, old_temp.* ;';
	--query := 'insert into ' ||TG_RELNAME|| '_audit select ' || quote_literal('u') ||',  now(), user, old.* ;';
        EXECUTE query;
	DROP table old_temp;
	END IF;
        RETURN NEW;

END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION tr_test1() OWNER TO pgsql;
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.02.2008, 16:12
    #35148185
Gold_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сново про триггеры...
4321 В 7.3.4 у меня действительно не получаицца (даже вариант описанный в справке к 8.0 - 35.10. Trigger Procedures)


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


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