Триггеры против хранимых процедур
В базе данных триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении происходят определенные события. Среди других его применений триггеры в основном используются для поддержания целостности в базе данных. Хранимая процедура - это метод, который может использоваться приложениями, обращающимися к реляционной базе данных. Как правило, хранимые процедуры используются в качестве метода проверки данных и контроля доступа к базе данных..
Какие триггеры?
Триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении базы данных происходят определенные события. Среди других его применений триггеры в основном используются для поддержания целостности в базе данных. Триггеры также используются для обеспечения соблюдения бизнес-правил, аудита изменений в базе данных и репликации данных. Наиболее распространенными триггерами являются триггеры языка манипулирования данными (DML), которые запускаются при манипулировании данными. Некоторые системы баз данных поддерживают триггеры, не связанные с данными, которые запускаются при возникновении событий языка определения данных (DDL). Некоторыми примерами являются триггеры, которые запускаются при создании таблиц, во время операций фиксации или отката и т. Д. Эти триггеры могут быть особенно использованы для аудита. Система баз данных Oracle поддерживает триггеры уровня схемы (т. Е. Триггеры, запускаемые при изменении схем базы данных), такие как После создания, Перед изменением, После изменения, Перед удалением, После удаления и т. Д. Четыре основных типа триггеров, поддерживаемых Oracle, - это триггеры уровня строки, Триггеры уровня столбца, триггеры каждого типа строки и триггеры для каждого типа оператора.
Что такое хранимые процедуры?
Хранимая процедура - это метод, который может использоваться приложением, обращающимся к реляционной базе данных. Обычно хранимые процедуры используются в качестве метода проверки данных и контроля доступа к базе данных. Если для какой-либо операции обработки данных требуется выполнение нескольких операторов SQL, такие операции реализуются как хранимые процедуры. При вызове хранимой процедуры необходимо использовать оператор CALL или EXECUTE. Хранимые процедуры могут возвращать результаты (например, результаты из операторов SELECT). Эти результаты могут использоваться другими хранимыми процедурами или приложениями. Языки, используемые для написания хранимых процедур, обычно поддерживают управляющие структуры, такие как if, while, for и т. Д. В зависимости от используемой системы базы данных, для реализации хранимых процедур можно использовать несколько языков (например, PL / SQL и java в Oracle, T- SQL (Transact-SQL) и .NET Framework в Microsoft SQL Server). Кроме того, MySQL использует свои собственные хранимые процедуры.
В чем разница между триггерами и хранимыми процедурами?
Триггер - это процедура (сегмент кода), которая выполняется автоматически, когда в таблице / представлении базы данных происходят определенные события, а хранимая процедура - это метод, который может использоваться приложением, обращающимся к реляционной базе данных. Триггеры выполняются автоматически, когда происходит событие, на которое должен ответить триггер. Но для выполнения хранимой процедуры необходимо использовать определенный оператор CALL или EXECUTE. Триггеры отладки могут быть сложнее и сложнее, чем отладка хранимых процедур. Триггеры очень полезны, когда вы хотите убедиться, что что-то происходит, когда происходит определенное событие.