2013-03-06 4 views
0

У меня есть следующий триггер, который я хотел бы использовать в нескольких таблицах. Итак, как я мог заставить его работать вместо одного триггера для каждой таблицы?Использование динамического имени таблицы в postgresql Trigger

BEGIN 
    IF (TG_OP = 'UPDATE') THEN 
     UPDATE test_table set rel_label = (select SUBSTR(release, 1, 5)) where uid=OLD.uid; 
     RETURN OLD; 
    ELSIF (TG_OP = 'INSERT') THEN 
     UPDATE test_table set rel_label = (select SUBSTR(release, 1, 5)) where uid=OLD.uid; 
     RETURN NEW; 
    END IF; 
    RETURN NULL; -- result ignored since is an AFTER TRIGGER 
END; 

Отношения.

+0

Итак, вы хотите изменить имя 'test_table' для каждого триггера? –

+0

Oposite. я хотел бы, чтобы триггер работал для любой таблицы без указания имени таблицы. –

ответ

0

Просто выдумал прямое решение.

BEGIN 
    IF (TG_OP = 'INSERT') THEN 
       NEW.rel_label = (select SUBSTR(NEW.release, 1, 5)); 
       RETURN NEW; 
    ELSIF (TG_OP = 'UPDATE') THEN 
       NEW.rel_label = (select SUBSTR(NEW.release, 1, 5)); 
       RETURN NEW; 
    END IF; 
      RETURN NULL; 

END; 
+0

Вот что мой вопрос был нацелен на;) –

Смежные вопросы