2016-11-09 1 views
1

У меня было две таблицы table1 и table2.Передача аргументов функции триггера в postgresql

table1 имеет три записи - id primary key, fd foreign key(table2), val_t1

table2 имеет 2 записей - fd primary key, val_t2

Если val_t1 любой строки в table1 обновляется, он должен вызвать функцию с соответствующим значением fd Поле в качестве аргумента. Этот fd должен использоваться в функции триггера для получения соответствующего val_t2 от table2.

Я прочитал о TG_ARGV, но не смог использовать его в триггере.

ответ

2

Вам не нужны аргументы, значение в new записи, например:

create or replace function trigger_on_table1() 
returns trigger language plpgsql as $$ 
declare 
    val text; 
begin 
    select val_t2 into val 
    from table2 
    where fd = new.fd; 
    raise notice '%', val; 
    return new; 
end; 
$$