Форум: "Базы";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];
ВнизUpdate Найти похожие ветки
← →
Ш-К (2002-06-18 09:33) [0]Имеется таблица, в ней около 100 столбцов. Как мне определить в теле триггера на after update какая ячейка и в какой из строк модифицировалась.
← →
Mike_Goblin (2002-06-18 09:46) [1]Триггер, насколько мне помнится, вызывается для каждой строки
Для столбцов есть конструкция New.<имя столбца>, OLD.<имя столбца>, содержащие старые и новые значения
PS. 100 столбцов - это что же такое там хранится
← →
Ш-К (2002-06-18 10:16) [2]Просто имеется структура 100х100 (представляю её таблицей). И мне надо определить в триггере (желательно в триггере), какая ячейка модифицировалась.
И как через New.<имя столбца>, OLD.<имя столбца>?
← →
Alexandr (2002-06-18 10:19) [3]if (new.fieldName<>old.fieldname) then
← →
Ш-К (2002-06-18 10:21) [4]2 Alexandr © (18.06.02 10:19)
И так 100 раз?
← →
Alexandr (2002-06-18 10:28) [5]конечно.
Чудес-то не бывает
← →
Desdechado (2002-06-18 10:30) [6]будет больше колонок, будет больше 100 раз :)
по-другому никак
← →
Ш-К (2002-06-18 10:32) [7]Ну хорошо, я могу написать для каждого столбца проверку, тем более, что обработка для каждого разная.
А как быть со строкой?
← →
Alexandr (2002-06-18 10:38) [8]какой строкой?
← →
Ш-К (2002-06-18 10:40) [9]Таблица меняется - хочу определить строку по ключевому полю, которая изменилась.
← →
Alexandr (2002-06-18 10:47) [10]дык триггер и сработает на "строке которая изменилась", ну хочешь заведи еще одно поле, в которое этим же триггером пиши дату изменения.
P.S. а триггер должен быть before Update
← →
Ш-К (2002-06-18 10:59) [11]Не вьехал.
Допустим таблица имеет поля: keyfild - integer и notkeyfild - float.
В записи с keyfild=51 меняем поле notkeyfild. (из клиента)
Теперь как в триггере before Update определить, что keyfild=51. Это значение нужно передать в ХП.
← →
Alexandr (2002-06-18 11:03) [12]old.keyField
или оно же
new.keyField
← →
Ш-К (2002-06-18 11:07) [13]Да, что-то я лоханулся.
СЕНКС.
← →
Ш-К (2002-06-18 11:15) [14]Теперь вопрос в догонку.
Тело триггера, что-то типа:
if (new.field1<>old.field1) then SP1(new.id);
if (new.field2<>old.field2) then SP2(new.id);
if (new.field3<>old.field3) then SP3(new.id);
if (new.field4<>old.field4) then SP4(new.id);
if (new.field5<>old.field5) then SP5(new.id);
........
if (new.fieldN<>old.fieldN) then SPN(new.id);
Т.е. имеется закономерность в названии полей и закономерность в названии ХП.
Можно ли это дело как-нить оптимизировать? Скажем, в цикле.
← →
Desdechado (2002-06-18 11:20) [15]увы :(
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c