У меня следующий запрос:
create or replace function test_function()
returns trigger as $body$
begin
if (tg_table_name = 'mytable' and tg_op='insert') then
INSERT into another_table(id, name) values(new.id, new.name);
return new;
else if (tg_table_name = 'mytable' and tg_op='update') then
INSERT into another_table(id, name) values(new.id, new.name);
return new;
end if;
return null;
end;
$body$ language plpsql;
РЕДАКТИРОВАТЬ: Мне нужно сделать:
update table mytable set name = 'test';
РЕДАКТИРОВАТЬ2: это не сработало, значение2 не был обновлен до нуля;
BEGIN
IF (TG_OP = 'INSERT' AND TG_TABLE_NAME='tableA') THEN
INSERT INTO tableB(
columnA,
columnB)
VALUES(
new.value1,
new.value2);
new.value2 := null;
RETURN NEW;
ELSEIF (TG_OP = 'UPDATE' AND
TG_TABLE_NAME='tableA') THEN
INSERT INTO tableB(
columnA,
columnB)
VALUES(
new.value1,
new.value2);
new.value2 := null;
RETURN NEW;
END IF;
RETURN null;
END;
РЕДАКТИРОВАТЬ: 4
create trigger add_notif_trigger after insert or update on
mytable for each row when (new.name > 100) execute
procedure function test_function();
Мне нужно обновить при любых условиях.Я не могу понять, как это сделать.
С уважением,