Diferença entre gatilhos e cursores

Diferença entre gatilhos e cursores
Diferença entre gatilhos e cursores

Vídeo: Diferença entre gatilhos e cursores

Vídeo: Diferença entre gatilhos e cursores
Vídeo: Diferença entre página e perfil do Facebook 2024, Novembro
Anonim

Acionadores vs Cursores

Em um banco de dados, um trigger é um procedimento (segmento de código) que é executado automaticamente quando alguns eventos específicos ocorrem em uma tabela/view. 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 em 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 trigger é um procedimento (segmento de código) que é executado automaticamente quando alguns eventos específicos ocorrem em uma tabela/view 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 acionadores mais comuns são os acionadores 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 acionadores que não são de dados, que são acionados quando ocorrem eventos de linguagem de definição de dados (DDL). Alguns exemplos são gatilhos que são disparados quando as tabelas são criadas, durante as operações de confirmação ou rollback, etc. Esses gatilhos podem ser usados especialmente para auditoria. O sistema de banco de dados Oracle suporta gatilhos de nível de esquema (ou seja, gatilhos disparados quando os esquemas de banco de dados são modificados), como Após a criação, Antes de alterar, Depois de alterar, Antes de soltar, Depois de descartar, etc. Os quatro principais tipos de gatilhos suportados pelo Oracle são gatilhos de nível de linha, Acionadores de nível de coluna, acionadores de cada tipo de linha e acionadores de cada tipo de instrução.

O que são Cursores?

Um cursor é uma estrutura de controle usada em 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. Ao definir o caminho correto, os cursores também podem ser usados para retroceder. Quando uma consulta SQL retorna um conjunto de linhas, elas são realmente processadas usando cursores. Um cursor precisa ser declarado e receber um nome antes de poder ser usado. Em seguida, o cursor precisa ser aberto usando o comando OPEN. Essa operação colocaria o cursor logo antes da primeira linha do conjunto de resultados de registros. Em seguida, o cursor deve executar a operação FETCH para realmente obter uma linha de dados para o 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 trigger é um procedimento (segmento de código) que é executado automaticamente quando alguns eventos específicos ocorrem em uma tabela/view de um banco de dados, enquanto um cursor é uma estrutura de controle utilizada em bancos de dados para percorrer os registros do banco de dados. Um cursor pode ser declarado e usado em um gatilho. Em tal situação, a instrução declare 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 poderá ser acessado de um gatilho aninhado. Assim que um gatilho for concluído, todos os cursores criados dentro do gatilho serão desalocados.

Recomendado: