Diferença entre disparadores e cursores

Anonim

Triggers vs Cursors

Em um banco de dados, um gatilho é um procedimento (segmento de código) que é executado automaticamente quando ocorrem alguns eventos específicos em uma tabela / exibição. Entre os outros usos, os gatilhos são usados ​​principalmente para manter a integridade em um banco de dados. Um cursor é uma estrutura de controle usada em bancos de dados para passar pelos registros do banco de dados. É muito semelhante ao iterador fornecido por muitas linguagens de programação.

O que são disparadores?

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. Entre os outros usos, os gatilhos são usados ​​principalmente para manter a integridade em um banco de dados. Os disparadores também são usados ​​para aplicar regras de negócios, auditorias de mudanças no banco de dados e replicação de dados. Os gatilhos mais comuns são disparadores de Linguagem de Manipulação de Dados (DML) que são acionados quando os dados são manipulados. Alguns sistemas de banco de dados suportam desencadeadores que não são dados, que são acionados quando os eventos do Data Definition Language (DDL) ocorrem. Alguns exemplos são os disparadores que são disparados quando as tabelas são criadas, durante as operações de confirmação ou reversão, etc. Esses disparadores podem ser especialmente usados ​​para auditoria. O sistema de banco de dados Oracle suporta disparadores do nível de esquema (ou seja, os disparadores disparados quando os esquemas do banco de dados são modificados), como After Creation, Before Alter, After Alter, Before Drop, After Drop, etc. Os quatro principais tipos de gatilhos suportados pelo Oracle são disparadores de nível de linha, Gatilhos de Nível de Coluna, Cada Tipo de Linha dispara e Para Cada Tipo de Declaração dispara.

O que são Cursores?

Um cursor é uma estrutura de controle usada em bancos de dados para passar pelos 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. Ao definir o caminho correto, os cursores também podem ser usados ​​para atravessar para trás. 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 que ele possa ser usado. Em seguida, o cursor precisa ser aberto usando o comando OPEN. Esta operação colocaria o cursor imediatamente antes da primeira linha do conjunto de registros de resultados. Em seguida, o cursor deve executar a operação FETCH para realmente obter uma linha de dados no aplicativo. Finalmente, o cursor precisa 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 em 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 declarar seria dentro do gatilho. Então, o alcance 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. Uma vez que um gatilho é concluído, todos os cursores criados dentro do gatilho serão desalinhados.