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