Все ничего, однако как с минимальными затратами получить дельту между старой и новой записью.CREATE TABLE LOGTABLE (
ID INTEGER NOT NULL,
CHANGETIME TIMESTAMP NOT NULL,
TABLENAME VARCHAR(30) NOT NULL,
RECID INTEGER NOT NULL,
OPERATION TLOGOPERATIONS NOT NULL /* TLOGOPERATIONS = CHAR(1) NOT NULL CHECK (value in ('I','U','D')) */,
LOGUSER VARCHAR(8) NOT NULL,
LOGROLE VARCHAR(31),
OLDVALUEDELTA VARCHAR(1000),
NEWVALUEDELTA VARCHAR(1000)
);
Например, делаю триггер:
Хоть триггер компилируется, вычисляемое значение не считается.insert into logtable
values(GEN_ID(GEN_ABONENTSTABLE_ID_AUTOINC,1),
current_timestamp,
'tablename',
NEW.id,
'I',
current_user,
current_role,
null,
(new.id||', '||new.abonentname||', '||new.responsible||', '||new.phone));
Какие варианты логирования есть.
ЗЫ Сразу скажу, разбивать по полям и логировать каждое поле отдельно в отдельной табличке мне не нужно, лог простой.
ЗЗЫ FB1.5