Всем привет! Как отредактировать отдельное поле в нередактируемой вьюхе? Предположим, есть таблица и просмотр, редактируемый триггерами: create table T ( PK integer not null primary key, A integer, B integer);
create view V as -- Пусть он по каким-то причинам select * from T; -- НЕ будет naturally updatable 1) Если триггер на апдейт такой: create trigger V_BI_SIMPLE for V active before update as begin update T set A = new.A, B = new.B where PK = old.PK; end то запрос на изменение _одного_ поля в строке вьюхи обNULLит второе неключевое поле. Т.е. после update V set A = 123 where PK = 456; будет A=123 B=NULL, предыдущее значение B потеряется. 2) Если триггер на апдейт посложнее, с проверкой на NULL: create trigger V_BI_COMPLEX for V active before update as begin if (new.A is not null) then update T set A = new.A where PK = old.PK; if (new.B is not null) then update T set B = new.B where PK = old.PK; end то это, во-первых, коряво, особенно если полей много, а во-вторых, не позволит занести NULL в поле, если понадобится. Может, у меня пробел в голове и есть красивое решение?