Перед изменением: BALANCE = 1000 Пользователь выполняет оператор: update accounts set balance = 1200 where ACCOUNT_NO = .... Старый и новый остатки на счете (balance) меньше 3,000, и условие аудита не выполняется; следовательно, аудит этого оператора не выполняется.
Перед изменением: BALANCE = 1000 Пользователь выполняет оператор: update accounts set balance = 3200 where ACCOUNT_NO = .... Новый остаток на счете больше 3,000, и условие аудита выполняется; следовательно, аудит этого оператора будет выполнен.
Перед изменением: BALANCE = 3200 Пользователь выполняет оператор: update accounts set balance = 1200 where ACCOUNT_NO = .... Новый остаток на счете меньше 3,000, но старый остаток больше. Следовательно, условие аудита выполняется, и аудит этого оператора будет выполнен.
Пользователь вставляет строку со старым значением столбца BALANCE < 3000. insert into accounts values (9999,1200,'X'); Остаток на счете стал равен 1,200, условие аудита не выполняется, и аудит этого оператора не будет выполнен. Если бы значение столбца остатков было больше или равно 3,000, аудит был бы выполнен.
Пользователь вставляет строку с неопределенным (null) значением столбца остатков: insert into accounts (account_no, status) values (9997, 'X'); Остаток на счете имеет неопределенное значение, и никакого значения по умолчанию для этого столбца не имеется; условие аудита не выполняется (в результате сравнения NULL >= 3000 всегда получается FALSE), и аудит этого оператора не будет выполнен. Важное замечание: если бы столбец аудита имел значение по умолчанию, превышающее 3,000, аудит оператора все равно не был бы выполнен даже несмотря на то, что значение столбца остатков вставленной строки превышает 3,000.