Différence entre les déclencheurs et les curseurs

Différence entre les déclencheurs et les curseurs
Différence entre les déclencheurs et les curseurs

Vidéo: Différence entre les déclencheurs et les curseurs

Vidéo: Différence entre les déclencheurs et les curseurs
Vidéo: Astuce pour reconnaitre l'or ou l'argent "Test de l'aimant" 2024, Novembre
Anonim

Triggers vs Cursors

Dans une base de données, un déclencheur est une procédure (segment de code) qui est exécutée automatiquement lorsque certains événements spécifiques se produisent dans une table/vue. Parmi ses autres utilisations, les déclencheurs sont principalement utilisés pour maintenir l'intégrité d'une base de données. Un curseur est une structure de contrôle utilisée dans les bases de données pour parcourir les enregistrements de la base de données. Il est très similaire à l'itérateur fourni par de nombreux langages de programmation.

Que sont les déclencheurs ?

Un déclencheur est une procédure (segment de code) qui est exécutée automatiquement lorsque certains événements spécifiques se produisent dans une table/vue d'une base de données. Parmi ses autres utilisations, les déclencheurs sont principalement utilisés pour maintenir l'intégrité d'une base de données. Les déclencheurs sont également utilisés pour appliquer les règles métier, auditer les modifications apportées à la base de données et répliquer les données. Les déclencheurs les plus courants sont les déclencheurs DML (Data Manipulation Language) qui se déclenchent lorsque des données sont manipulées. Certains systèmes de base de données prennent en charge les déclencheurs non liés aux données, qui sont déclenchés lorsque des événements DDL (Data Definition Language) se produisent. Certains exemples sont des déclencheurs qui sont déclenchés lors de la création de tables, lors d'opérations de validation ou de restauration, etc. Ces déclencheurs peuvent être particulièrement utilisés pour l'audit. Le système de base de données Oracle prend en charge les déclencheurs au niveau du schéma (c'est-à-dire les déclencheurs déclenchés lorsque les schémas de base de données sont modifiés) tels que After Creation, Before Alter, After Alter, Before Drop, After Drop, etc. Les quatre principaux types de déclencheurs pris en charge par Oracle sont les déclencheurs au niveau de la ligne, Déclencheurs au niveau de la colonne, déclencheurs pour chaque type de ligne et déclencheurs pour chaque type d'instruction.

Que sont les curseurs ?

Un curseur est une structure de contrôle utilisée dans les bases de données pour parcourir les enregistrements de la base de données. Il est très similaire à l'itérateur fourni par de nombreux langages de programmation. En plus de parcourir les enregistrements d'une base de données, les curseurs facilitent également la récupération des données, l'ajout et la suppression d'enregistrements. En définissant le bon chemin, les curseurs peuvent également être utilisés pour parcourir en arrière. Lorsqu'une requête SQL renvoie un ensemble de lignes, celles-ci sont en fait traitées à l'aide de curseurs. Un curseur doit être déclaré et attribué un nom, avant de pouvoir être utilisé. Ensuite, le curseur doit être ouvert à l'aide de la commande OPEN. Cette opération placerait le curseur juste avant la première ligne du jeu de résultats d'enregistrements. Ensuite, le curseur doit effectuer l'opération FETCH pour obtenir une ligne de données dans l'application. Enfin, le curseur doit être fermé à l'aide de l'opération CLOSE. Les curseurs fermés peuvent être rouverts.

Quelle est la différence entre les déclencheurs et les curseurs ?

Un déclencheur est une procédure (segment de code) qui est exécutée automatiquement lorsque certains événements spécifiques se produisent dans une table/vue d'une base de données, tandis qu'un curseur est une structure de contrôle utilisée dans les bases de données pour parcourir les enregistrements de la base de données. Un curseur peut être déclaré et utilisé dans un déclencheur. Dans une telle situation, l'instruction declare serait à l'intérieur du déclencheur. La portée du curseur serait alors limitée à ce déclencheur. Dans un trigger, si un curseur est déclaré sur une table insérée ou supprimée, un tel curseur ne sera pas accessible depuis un trigger imbriqué. Une fois qu'un déclencheur est terminé, tous les curseurs créés dans le déclencheur seront désalloués.

Conseillé: