Triggers vs Cursors
Em um banco de dados, um gatilho é um procedimento (segmento de código) executado automaticamente quando alguns eventos específicos ocorrem em uma tabela / exibição. Entre seus outros usos, os gatilhos são usados principalmente para manter a integridade em um banco de dados. Um cursor é uma estrutura de controle usada nos bancos de dados para percorrer os registros do banco de dados. É muito semelhante ao iterador fornecido por muitas linguagens de programação.
O que são gatilhos?
Um gatilho é um procedimento (segmento de código) executado automaticamente quando alguns eventos específicos ocorrem em uma tabela / exibição de um banco de dados. Entre seus outros usos, os gatilhos são usados principalmente para manter a integridade em um banco de dados. Os gatilhos também são usados para impor regras de negócios, auditar alterações no banco de dados e replicar dados. Os gatilhos mais comuns são os gatilhos DML (Data Manipulation Language) que são acionados quando os dados são manipulados. Alguns sistemas de banco de dados suportam acionadores que não são de dados, que são acionados quando ocorrem eventos de DDL (Data Definition Language). Alguns exemplos são gatilhos acionados quando as tabelas são criadas, durante operações de confirmação ou reversão, etc. Esses gatilhos podem ser usados especialmente para auditoria. O sistema de banco de dados Oracle suporta gatilhos no nível do esquema (ou seja, gatilhos disparados quando os esquemas do banco de dados são modificados), como Após a criação, Antes da alteração, Depois da alteração, Antes do descarte, Após o descarte etc. Os quatro principais tipos de gatilhos suportados pelo Oracle são gatilhos no nível de linha, Gatilhos no nível da coluna, gatilhos Cada tipo de linha e gatilhos Para cada tipo de instrução.
O que são cursores?
Um cursor é uma estrutura de controle usada nos bancos de dados para percorrer os registros do banco de dados. É muito semelhante ao iterador fornecido por muitas linguagens de programação. Além de percorrer os registros em um banco de dados, os cursores também facilitam a recuperação de dados, adicionando e excluindo registros. Definindo a maneira correta, os cursores também podem ser usados para retroceder. Quando uma consulta SQL retorna um conjunto de linhas, essas são realmente processadas usando cursores. Um cursor precisa ser declarado e atribuído um nome, antes de poder ser usado. Em seguida, o cursor precisa ser aberto usando o comando OPEN. Essa operação colocaria o cursor imediatamente antes da primeira linha do conjunto de registros de resultados. Em seguida, o cursor precisa executar a operação FETCH para realmente obter uma linha de dados no aplicativo. Finalmente, o cursor deve ser fechado usando a operação CLOSE. Os cursores fechados podem ser abertos novamente.
Qual é a diferença entre Triggers e Cursors?
Um gatilho é um procedimento (segmento de código) que é executado automaticamente quando alguns eventos específicos ocorrem em uma tabela / exibição de um banco de dados, enquanto um cursor é uma estrutura de controle usada nos bancos de dados para passar pelos registros do banco de dados. Um cursor pode ser declarado e usado dentro de um gatilho. Em tal situação, a declaração de declaração estaria dentro do gatilho. Em seguida, o escopo do cursor seria limitado a esse gatilho. Dentro de um gatilho, se um cursor for declarado em uma tabela inserida ou excluída, esse cursor não seria acessível a partir de um gatilho aninhado. Depois que um gatilho é concluído, todos os cursores criados no gatilho serão desalocados.