Я пытаюсь добиться здесь, чтобы в основном переопределить 0 строк. Обновляется , когда выдается UPDATE в случае, если фактическое значение PK / UK не существует в таблице. Вот что я сделал:
Фактическая таблица:
CREATE TABLE fdrgiit.vereine(
team numeric(10) primary key,
punkte int not null,
serie int not null
);
Таблица пустышки:
CREATE TABLE fdrgiit.dummyup
(
id numeric(1) PRIMARY KEY,
datetest timestamp
);
Вставленные записи в обе таблицы:
insert into vereine(team,punkte,serie) values(1, 50, 1);
insert into vereine(team,punkte,serie) values(2, 30, 1);
insert into vereine(team,punkte,serie) values(3, 25, 1);
insert into vereine(team,punkte,serie) values(4, 37, 2);
insert into dummyup values(1, now());
Создана следующая функция и триггер:
create or replace function updateover()
returns trigger as
$BODY$
begin
if EXISTS (select 1 FROM vereine WHERE team = new.team ) then
RETURN NEW;
else
UPDATE fdrgiit.dummyup set datetest=now() where id=1;
RETURN NULL;
end if;
end;
$BODY$
LANGUAGE plpgsql;
create trigger update_redundancy
before update on vereine
for each row
execute procedure updateover() ;
Но когда я выполняю ОБНОВЛЕНИЕ, подобное этому, я все равно получаю 0 строк, затронутых
update vereine set punkte=87 where team=5;
Пожалуйста, просмотрите и предложите, если это то, что можно сделать.