2016-07-15 7 views
0

В Sybase у меня есть главная таблица, называемая тестовой таблицей test_a. Чтобы обновить таблицу аудита, я создал триггеры, вставляю, обновляю и удаляю. Но проблема в том, что когда я делаю запрос на обновление с теми же данными, которые существуют без изменений, триггер обновления запускает огонь и записи в таблице аудита для каждого обновления, которое создает дублирование. Я хочу, чтобы остановить запуск обновления, когда никаких изменений не происходит при использовании запроса на обновление. Он должен запускаться только при вставке новой строки, но не в существующую.sybase update trigger check

мой стол имеет

test : ID | NAME | DESC 
test_a : UPDATED_BY|DATE|ID|NAME|DESC 

вы можете предложить, как остановить спускового когда никакие новые изменения не будут обновлены в запросе.

спасибо.

+0

Затем удалите триггер «update» и используйте триггер 'insert'. –

+0

Я знаю, что мы можем заменить вставку вместо обновления, но я хочу, чтобы в триггере обновления проверялось, является ли это значение новым или старым, и если оно обновляется, а если оно устарело, оно не должно обновляться. – samule

ответ

0

Вы не можете остановить триггер обновления при запуске - инструкция UPDATE всегда запускает его. Но вы можете сравнить содержимое таблицы «вставленный» и «удаленный», чтобы определить, действительно ли значения были обновлены. Если нет, то не изменяйте таблицу аудита.