Karabas Barabas wrote:
> D> Ай, а default-поле в таблице - уже прошлый век ;)
> Какое default-поле ?
Create Table T(
...
DateReg TimeStamp Default 'now',
UserReg Char (6) Default Current_User, /*Фантазии не поощряю, 6 */
DateIzm TimeStamp,
UserIzm Char (6),
Triggers_Off Char(1) Default 'Н'
)
Если after-триггера не нужны (а я их избегаю), то
Create Trigger T_BI For T Before Insert As
Begin
if ((New.Triggers_Off is NULL) OR (New.Triggers_Off <> 'Д')) then
begin
Trigger body;
end
New.Triggers_Off='Н'
End
Create Trigger T_BU For T Before Update As
Begin
if ((New.Triggers_Off is NULL) OR
((New.Triggers_Off = Old.Triggers_Off) And
(New.Triggers_Off <> 'Д'))) then
begin New.UserIzm=USER; New.DateIzm='NOW;
Trigger body;
End
New.Triggers_Off='Н';
End
Такой вот технологический стандарт структуры таблиц.
> У меня почему-то появилась мысль добавить в логируемые таблицы поле с ее
> именем, тогда в триггере будет доступно имя текущей таблицы. Или это не
> кошерно ?
Ну, если увеличить размер записи на 31 символ (а нынче уже и поболе) и
держать одно и то же в миллионе записей не в падлу, а написать за часок
генератор триггеров по шаблону в падлу, то оно конешно. Проблема со
статическими логирующими триггерами не в том, как их сделать не
утруждаясь особо, а в том, как всё это добро поддерживать не путаясь при
изменении метаданных.
--
Regards. Ded.