![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Триггер создание архивной копии данных [D6, IB6.x]
S@shka © (2004-06-07 13:03:00)Народ чего то торможу....
Есть две таблицы
Table1 и Table1_Arhive структуры идентичны
ID Integer
Data Varchar
Times TimeStamp
Но в Table1 уникальность по ID.
в Table1 хранятся данные по ID если они обновляются старые сливаются в архив.
делаю. Триггер в Table1 before update
...
if exists (select id from Table1 where id = new.id)
then begin
update Table1_Archive values (old.id,old.data...)
end
else begin
insert into table1 values (new.id,new.data...);
end;
...
Что тут не правильно? почему Insert не проходит???
S@shka (2004-06-07 13:36:00) [1]Вопрос. снят :%)
S@shka (2004-06-07 13:19:00) [2]Стоп...стоп...стоп!!!
Как это оно не изменилось.....
я не делаю никогда явного INSERT в талицу Table1
вместо этого делается UPDATE....
если такого ID нет то должна делаться вставка записи - есно new.id - имеет смысл в операторе Insert into Table1...
вопрос только почему реально вставки не происходит???
И еще может этого нельзя делать в on before update триггере??
а создать для этого процедуру? - хотя врядли
Johnmen (2004-06-07 13:12:00) [3]Правильней
IF (OLD.Field<>NEW.Field) THEN INSERT ....
S@shka (2004-06-07 13:12:00) [4]ну ... да энто написано...
спасибо
S@shka (2004-06-07 13:09:00) [5]хе-хе-хе
:)
S@shka (2004-06-07 13:09:00) [6]а смысл то правильный ?
Johnmen (2004-06-07 13:07:00) [7]Как почему ? Потому, что значение ключевого поля ID не изменилось...