powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сново про триггеры...
4 сообщений из 4, страница 1 из 1
Сново про триггеры...
    #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
Сново про триггеры...
    #33493190
фффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На pl/pgsql не получится. Можно на pl/perl или pl/tcl. Поищите здесь или в архивах pgsql-general.
...
Рейтинг: 0 / 0
Сново про триггеры...
    #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
Период между сообщениями больше года.
Сново про триггеры...
    #35148185
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4321 В 7.3.4 у меня действительно не получаицца (даже вариант описанный в справке к 8.0 - 35.10. Trigger Procedures)


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


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