Vamos discutir mais algumas diferenças entre Trigger e Procedure com a ajuda de um gráfico de comparação mostrado abaixo.
Gráfico de comparação
Base para Comparação | Gatilhos | Procedimentos |
---|---|---|
Basic | Eles são executados automaticamente na ocorrência do evento especificado. | Eles podem ser executados sempre que necessário. |
Chamando | Gatilhos não podem ser chamados dentro de um procedimento. | Mas você pode chamar um procedimento dentro de um gatilho. |
Parâmetro | Nós não podemos passar parâmetros para gatilhos. | Nós podemos passar parâmetros para procedimentos. |
Retorna | Trigger nunca retorna valor na execução. | O procedimento pode retornar valor / s na execução. |
Definição de gatilho
O gatilho é como um procedimento que é executado automaticamente na ocorrência de um evento especificado. Como o procedimento, o gatilho não precisa ser chamado explicitamente. Os gatilhos são criados para executar alguma tarefa em resposta à ocorrência de algum evento especificado.
O gatilho pode ser chamado em resposta às instruções DDL (DELETE, INSERT ou UPDATE) ou instruções DML (DELETE, INSERT ou UPDATE) ou, para algumas operações do banco de dados (SERVERERROR, LOGON, LOGOFF, STARTUP ou SHUTDOWN).
O gatilho consiste em três componentes, conforme discutido abaixo:
- Evento : Evento é a ocorrência de algum incidente que causará a execução do trigger. O gatilho pode ser ordenado para ser executado ANTES de um evento ocorrer ou ser ordenado para ser executado DEPOIS da execução de um evento.
- Condição : É uma parte opcional do gatilho. Se não for mencionado, o acionador será executado quando o evento especificado ocorrer. Se a condição for especificada, ela verificará as regras para determinar se o gatilho deve ser executado.
- Ação : Action é um conjunto de instruções SQL que serão executadas na execução do Trigger.
A forma geral de criação de um evento é discutida abaixo:
CRIAR DISPARO ANTES / APÓS AÇÃO DE CONDIÇÃO;
Aqui, a condição é opcional.
Definição de Procedimentos
O procedimento pode ser tomado como uma unidade de programa, criada para executar alguma tarefa e é armazenada no banco de dados. Eles são chamados pela instrução SQL sempre que necessário. Procedimentos são como funções definidas pelo usuário que são definidas pelos desenvolvedores. Procedimentos podem ser chamados usando CALL ou EXECUTE .
Os procedimentos são úteis nas seguintes situações:
- Se o procedimento for requerido por vários outros aplicativos, ele poderá ser armazenado no servidor para que eles possam ser chamados por qualquer aplicativo. Isso reduzirá o esforço de duplicação do procedimento de um banco de dados para outro e também melhora a modularidade do software.
- Como o procedimento está sendo executado no servidor, ele reduz a transferência de dados e também reduz o custo de comunicação.
- Os procedimentos podem ser usados para verificar as restrições complexas que estão além do poder do gatilho.
Vamos discutir a forma geral de criar um procedimento:
CREATE PROCEDURE () RETURNS;
Aqui, os parâmetros e as declarações locais são opcionais. Eles são mencionados apenas quando são necessários. A declaração abaixo descreve a chamada dos procedimentos.
LIGAR () ;
Principais diferenças entre gatilho e procedimento
- A principal diferença entre gatilho e procedimento é que um gatilho é uma instrução que é chamada automaticamente quando ocorre um evento. Por outro lado, o procedimento é invocado sempre que for necessário.
- Pode-se definir o procedimento dentro de um gatilho. Mas, um gatilho nunca é definido dentro de um procedimento, pois o gatilho precisa ser chamado automaticamente na ocorrência de qualquer evento.
- Podemos passar parâmetros para procedimentos, mas não podemos passar parâmetros para acionar como não é invocado por nós.
- Um procedimento pode retornar valores de parâmetro ou código, mas um gatilho não pode.
Conclusão:
Os acionadores são úteis, mas são evitados se existir alguma alternativa para eles, pois aumenta a complexidade dos dados. Às vezes, os gatilhos também são substitutos por um procedimento apropriado.