Differenza tra trigger e cursori

Anonim

Triggers vs Cursors

In un database, un trigger è una procedura (segmento di codice) che viene eseguito automaticamente quando si verificano eventi specifici in una tabella / vista. Tra gli altri usi, i trigger sono principalmente utilizzati per mantenere l'integrità in un database. Un cursore è una struttura di controllo utilizzata nei database per passare attraverso i record di database. È molto simile all'Itteratore fornito da molti linguaggi di programmazione.

Che cosa sono trigger?

Un trigger è una procedura (segmento di codice) che viene eseguito automaticamente quando si verificano eventi specifici in una tabella / vista di un database. Tra gli altri usi, i trigger sono principalmente utilizzati per mantenere l'integrità in un database. I trigger vengono utilizzati anche per applicare le regole di business, verificare le modifiche nel database e replicare i dati. I trigger più comuni sono i trigger di DML (Data Manipulation Language) che vengono attivati ​​quando i dati vengono manipolati. Alcuni sistemi di database supportano trigger non dati, che vengono generati quando si verificano eventi DDL (Data Definition Language). Alcuni esempi sono i trigger che vengono sparati quando vengono create le tabelle, durante le operazioni di commit o rollback, ecc. Questi trigger possono essere utilizzati soprattutto per il controllo. Il sistema di database di Oracle supporta i trigger a livello di schema (cioè i trigger scritti quando vengono modificati i schemi di database) come After Creation, Before Alter, After Alter, Before Drop, After Drop ecc. I quattro tipi principali di trigger supportati da Oracle sono trigger a livello di riga, Trigger di livello di colonna, trigger di ciascun tipo di riga e per ogni trigger di tipo di dichiarazione.

Quali sono i cursori?

Un cursore è una struttura di controllo utilizzata nei database per passare attraverso i record di database. È molto simile all'Itteratore fornito da molti linguaggi di programmazione. Oltre a attraversare i record in un database, i cursori facilitano anche il recupero dei dati, aggiungendo e eliminando i record. Definendo il modo corretto, i cursori possono anche essere usati per attraversare l'indietro. Quando una query SQL restituisce un insieme di righe, queste vengono effettivamente elaborate utilizzando cursori. Un cursore deve essere dichiarato e assegnato un nome, prima che possa essere utilizzato. Quindi il cursore deve essere aperto con il comando OPEN. Questa operazione porterebbe il cursore poco prima della prima riga del set di risultati dei record. Quindi il cursore deve eseguire l'operazione FETCH per ottenere una riga di dati nell'applicazione. Infine, il cursore deve essere chiuso con l'operazione CLOSE. Possono essere aperti i cursori chiusi.

Qual è la differenza tra Trigger e Cursori?

Un trigger è una procedura (segmento di codice) che viene eseguito automaticamente quando si verificano eventi specifici in una tabella / vista di un database, mentre un cursore è una struttura di controllo utilizzata nei database per passare attraverso i record di database.Un cursore può essere dichiarato e usato all'interno di un trigger. In una simile situazione, l'istruzione declare 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 in una tabella inserita o eliminata, un tale cursore non è accessibile da un trigger nidificato. Una volta completato un trigger, tutti i cursori creati all'interno del trigger verranno disattivati.