Trigger vs Cursori
In un database, un trigger è una procedura (segmento di codice) che viene eseguita automaticamente quando si verificano determinati eventi in una tabella/vista. Tra gli altri usi, i trigger vengono utilizzati principalmente per mantenere l'integrità in un database. Un cursore è una struttura di controllo utilizzata nei database per scorrere i record del database. È molto simile all'iteratore fornito da molti linguaggi di programmazione.
Cosa sono i Trigger?
Un trigger è una procedura (segmento di codice) che viene eseguita automaticamente quando si verificano determinati eventi in una tabella/vista di un database. Tra gli altri usi, i trigger vengono utilizzati principalmente per mantenere l'integrità in un database. I trigger vengono utilizzati anche per applicare le regole aziendali, controllare le modifiche nel database e replicare i dati. I trigger più comuni sono i trigger DML (Data Manipulation Language) che vengono attivati quando i dati vengono manipolati. Alcuni sistemi di database supportano trigger non di dati, che vengono attivati quando si verificano eventi DDL (Data Definition Language). Alcuni esempi sono trigger che vengono attivati quando vengono create tabelle, durante le operazioni di commit o rollback, ecc. Questi trigger possono essere usati soprattutto per il controllo. Il sistema di database Oracle supporta i trigger a livello di schema (ovvero i trigger attivati quando gli schemi del database vengono modificati) come After Creation, Before Alter, After Alter, Before Drop, After Drop, ecc. I quattro tipi principali di trigger supportati da Oracle sono i trigger a livello di riga, Trigger a livello di colonna, trigger per ogni tipo di riga e trigger per ogni tipo di istruzione.
Cosa sono i cursori?
Un cursore è una struttura di controllo utilizzata nei database per scorrere i record del database. È molto simile all'iteratore fornito da molti linguaggi di programmazione. Oltre a scorrere i record in un database, i cursori facilitano anche il recupero dei dati, l'aggiunta e l'eliminazione di record. Definendo il modo corretto, i cursori possono essere utilizzati anche per spostarsi all'indietro. Quando una query SQL restituisce un insieme di righe, queste vengono effettivamente elaborate utilizzando i cursori. Un cursore deve essere dichiarato e assegnato un nome, prima che possa essere utilizzato. Quindi è necessario aprire il cursore utilizzando il comando OPEN. Questa operazione posizionerebbe il cursore appena prima della prima riga del set di record dei risultati. Quindi il cursore deve eseguire l'operazione FETCH per ottenere effettivamente una riga di dati nell'applicazione. Infine, il cursore deve essere chiuso con l'operazione CHIUDI. I cursori chiusi possono essere riaperti.
Qual è la differenza tra Trigger e Cursori?
Un trigger è una procedura (segmento di codice) che viene eseguita automaticamente quando si verificano determinati eventi in una tabella/vista di un database, mentre un cursore è una struttura di controllo utilizzata nei database per scorrere i record del database. Un cursore può essere dichiarato e utilizzato all'interno di un trigger. In una situazione del genere, la dichiarazione di dichiarazione sarebbe all'interno del trigger. Quindi l'ambito del cursore sarebbe limitato a quel trigger. All'interno di un trigger, se un cursore viene dichiarato su una tabella inserita o eliminata, tale cursore non sarebbe accessibile da un trigger nidificato. Una volta completato un trigger, tutti i cursori creati all'interno del trigger verranno deallocati.