Может ли кто-нибудь объяснить разницу между «до» и «после» триггером в оракуле 10g с примером?разница до и после триггера в оракуле
ответ
Во-первых, я начну свой ответ, определив триггер: а триггер является хранимая процедура, которая выполняется при добавлении строки, изменен или удален.
Триггеры могут запустить ДО действие принимается или ПОСЛЕ принимается действие.
BEFORE
триггеры обычно используются, когда валидация должна быть выполнена до принятия изменения. Они запускаются до внесения каких-либо изменений в базу данных. Допустим, вы запустили базу данных для банка. У вас есть таблица accounts
и таблица transactions
. Если пользователь делает вывод из своей учетной записи, вы должны убедиться, что у пользователя достаточно кредитов на его счете для его ухода. Триггер BEFORE
позволит это сделать и не допустить, чтобы строка была вставлена в transactions
, если баланс в accounts
недостаточен.
AFTER
триггеры обычно используются, когда информация нуждается в обновлении в отдельной таблице из-за изменения. Они запускаются после внесения изменений в базу данных (это необязательно было сделано). Вернемся к нашему примеру. После успешной транзакции вы хотите, чтобы balance
был обновлен в таблице accounts
. Триггер AFTER
позволит вам выполнить именно это.
+1 Я бы просто добавил, что некоторые триггерные проверки должны выполняться в строке AFTER триггеров, потому что только триггеры AFTER имеют значение «fixed». В триггере BEFORE вы можете проверить и передать некоторое сложное правило на основе значения: NEW.col только для значения: NEW.col, которое будет изменено позже в триггере, так что правило теперь нарушено. –
Я не совсем уверен, что вам интересно знать, поэтому я буду придерживаться этого фундаментального.
Перед Триггеры
- В соответствии с названием, эти триггеры обжигают до создания строки в таблице. Впоследствии, поскольку строка еще не создана, у вас есть полный доступ к полю: new.table_element. Это позволяет очищать данные и их однородность, если нежелательные/искаженные данные пытаются быть вставлены/обновлены. Это всего лишь базовый пример, но вам нужно использовать перед триггером в любое время, когда вам может потребоваться доступ к «новым» данным.
После Триггеры
- Поскольку после триггер срабатывает после того, как ряд уже создан, эти триггеры обычно используются, когда вы хотите, чтобы логика произойти из-за ряда. Например, если у вас есть таблица адресов, и пользователь обновляет свой адрес, тогда вам может понадобиться обновить идентификаторы ссылочных ссылок в таблице xref после создания (если вы также сохраните все старые адреса). Кроме того, в отличие от переднего триггера, у вас нет доступа к изменению любого значения столбца, поскольку строка уже существует в таблице.
перед срабатыванием используется, когда действие спускового механизма должно определить, действительно ли запускающие заявления должны быть разрешено завершить .by с использованием ДО Триггера пользователя может устранить ненужную обработку триггера , но, после того TRIGGERS используется, когда запускающее заявление должен завершиться до запуска действия триггера.
Измените существующий ответ, а не дублируйте другой. – wonea
- 1. Как использовать вместо триггера в оракуле?
- 2. разница Даты в оракуле
- 3. Вставка нескольких записей из триггера в оракуле
- 4. разница между Синонимами в оракуле
- 5. разница между pthread_cond_signal до и после pthread_mutex_unlock
- 6. Событие триггера после завершения триггера
- 7. Акцентированные символы: разница до и после компиляции
- 8. Округление чисел до 2 цифр после запятой в оракуле
- 9. Как получить старые значения в обновлении составного триггера в оракуле
- 10. Обновление той же строки в оракуле во время триггера?
- 11. Разница между NUMBER и NUMBER (16) в оракуле?
- 12. Количество таблиц до и после вставки внутри триггера
- 13. Разница между двумя датами в оракуле
- 14. Я получаю ошибку при компиляции триггера в оракуле
- 15. Почему создание триггера автоматического инкремента в оракуле не работает?
- 16. Аудит регистрации пользователя в оракуле с помощью триггера
- 17. problema создание триггера в оракуле для обновления другой таблицы
- 18. Округление до первой цифры +1 в оракуле
- 19. как округлить до следующих 10 в оракуле?
- 20. ближайший номер до заданного числа в оракуле
- 21. Разница между до и после декремента в рекурсивной функции аргумента
- 22. разница между до и после промежуточного слоя в Laravel 5,1
- 23. Разница в предыдущем месяце и разница в конце года в оракуле sql
- 24. Возможно ли создать триггер для «после подключения» в оракуле?
- 25. Пожар триггера после обновления clob в oracle 11g
- 26. Разница между созданием объекта до/после window.onload
- 27. После запуска триггера в mysql
- 28. Зафиксировать после открытия курсора в оракуле
- 29. Ошибка триггера после вставки
- 30. Событие триггера после $ state.go()
Я все еще не был уверен, что вы искали с точки зрения простоты, поэтому я удалил свой ответ. У кого-то еще может быть хорошая идея. –
За каждое небольшое сомнение я отправляю вопрос в переполнение стека, не думая .....(думаю, я не должен этого делать) .... Я понял концепцию триггеров. Теперь я подумаю, прежде чем публиковать вопрос ... – Jagan