Триггеры против курсоров
В базе данных триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении происходят определенные события. Среди других его применений триггеры в основном используются для поддержания целостности в базе данных. Курсор - это управляющая структура, используемая в базах данных для просмотра записей базы данных. Это очень похоже на итератор, предоставляемый многими языками программирования.
Какие триггеры?
Триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении базы данных происходят определенные события. Среди других его применений триггеры в основном используются для поддержания целостности в базе данных. Триггеры также используются для обеспечения соблюдения бизнес-правил, аудита изменений в базе данных и репликации данных. Наиболее распространенными триггерами являются триггеры языка манипулирования данными (DML), которые запускаются при манипулировании данными. Некоторые системы баз данных поддерживают триггеры, не связанные с данными, которые запускаются при возникновении событий языка определения данных (DDL). Некоторыми примерами являются триггеры, которые запускаются при создании таблиц, во время операций фиксации или отката и т. Д. Эти триггеры могут быть особенно использованы для аудита. Система баз данных Oracle поддерживает триггеры уровня схемы (т. Е. Триггеры, запускаемые при изменении схем базы данных), такие как После создания, Перед изменением, После изменения, Перед удалением, После удаления и т. Д. Четыре основных типа триггеров, поддерживаемых Oracle, - это триггеры уровня строки, Триггеры уровня столбца, триггеры каждого типа строки и триггеры для каждого типа оператора.
Какие курсоры?
Курсор - это управляющая структура, используемая в базах данных для просмотра записей базы данных. Это очень похоже на итератор, предоставляемый многими языками программирования. Помимо обхода записей в базе данных, курсоры также облегчают поиск данных, добавление и удаление записей. Определив правильный путь, курсоры также можно использовать для перемещения назад. Когда SQL-запрос возвращает набор строк, они фактически обрабатываются с помощью курсоров. Курсор должен быть объявлен и ему присвоено имя, прежде чем его можно будет использовать. Затем курсор необходимо открыть с помощью команды OPEN. Эта операция поместит курсор непосредственно перед первой строкой результирующего набора записей. Затем курсор должен выполнить операцию FETCH, чтобы фактически передать строку данных в приложение. Наконец, курсор должен быть закрыт с помощью операции ЗАКРЫТЬ. Закрытые курсоры могут быть открыты снова.
В чем разница между триггерами и курсорами?
Триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении базы данных происходят определенные события, а курсор - это структура управления, используемая в базах данных для просмотра записей базы данных. Курсор может быть объявлен и использован внутри триггера. В такой ситуации, объявление оператора будет внутри триггера. Тогда область действия курсора будет ограничена этим триггером. Внутри триггера, если курсор объявлен на вставленной или удаленной таблице, такой курсор не будет доступен из вложенного триггера. По завершении триггера все курсоры, созданные в триггере, будут отменены..