• Aucun résultat trouvé

Les triggers

N/A
N/A
Protected

Academic year: 2022

Partager "Les triggers"

Copied!
20
0
0

Texte intégral

(1)

Les triggers

Oracle vous permet de définir des procédures, appelées triggers, de la base de données.

Ces procédures sont associées à une table et sont exécutées implicitement lorsque vous

lancez des ordres SQL de type insertion,

modification, suppression (INSERT, UPDATE, DELETE).

(2)

Les triggers

Principes d’utilisation des triggers

Les triggers permettent d’exécuter automatiquement

des procédures centralisées dans la base de données, quel que soit l’utilisateur ou l’application qui les

déclenche. Ils sont souvent utilisés pour construire des interfaces interapplications et s’avèrent très simples

et très souples dans leur maniement.

Les triggers se déclenchent sur des actions modifiant les données de la table sur laquelle porte le trigger. Si cette table est accessible en lecture uniquement, aucun trigger ne sera déclenché.

(3)

Les triggers

N’utilisez pas les triggers pour effectuer des contrôles d’intégrité des données qui peuvent

être réalisés par des contraintes d’intégrité. Ces contraintes positionnées au niveau des

tables sont puissantes et très optimisées.

(4)

Les triggers

Nous voulons constituer un fichier historique de toutes les modifications apportées au salaire des employés :

CREATE TABLE historique ( empno NUMBER(5),

ancien_sal NUMBER(7,2), nouveau_sal NUMBER(7,2), dat_modif DATE,

(5)

CREATE OR REPLACE TRIGGER trig_salaire

AFTER INSERT OR UPDATE OR DELETE ON emp FOR EACH ROW

DECLARE

dat_m DATE := SYSDATE ; BEGIN

IF INSERTING THEN INSERT INTO historique VALUES (:new.empno,null,:new.sal,date_m,user,'NOUVEAU' );

ELSIF UPDATING ('SAL') THEN INSERT INTO historique

VALUES(:old.empno,:old.sal,:new.sal,quand,user,'MODIFIE');

ELSIF DELETING THEN INSERT INTO historique

VALUES (:old.empno,:old.sal,null,quand,user,'SUPPRIME');

END IF;

END;/

(6)

Les triggers

CREATE OR REPLACE TRIGGER crée un trigger DROP TRIGGER supprime un trigger

ALTER TRIGGER nom_du_trigger ENABLE ; -- active le trigger

ALTER TRIGGER nom_du_trigger DISABLE;

-- désactive le trigger

(7)

Les triggers

Cette opération peut être étendue en un seul

ordre SQL à l’ensemble des triggers qui portent sur une table :

ALTER TABLE table_ou_sont_des_triggers DISABLE ALL TRIGGERS ;

ALTER TABLE table_ou_sont_des_triggers ENABLE ALL TRIGGERS ;

(8)

Les triggers

Le type d’action qui déclenche le trigger détermine son moment d’exécution ; il est précisé au début de l’écriture du code du trigger. Les actions sont les

suivantes : INSERT ; UPDATE ; DELETE.

Le trigger peut être déclenché avant ou après cette action : BEFORE ou AFTER.

(9)

Les triggers

Le trigger peut être déclenché avant ou après cette action : BEFORE ou AFTER.

(10)

Les triggers

FOR EACH ROW

Pour un ordre SQL modifiant plusieurs enregistrements simultanément, la clause

FOR EACH ROW détermine le déclenchement du

trigger pour chaque enregistrement ou pour l’ensemble des lignes modifiées.

(11)

Les triggers

À l’intérieur du code du trigger, vous pouvez contrôler avec précision les conditions

d’exécution :

IF INSERTING THEN

IF UPDATING ('SAL') THEN IF DELETING THEN

permettent d’effectuer des traitements différents suivant l’action qui a déclenché le trigger.

(12)

Les triggers

On peut même, dans le cas de la mise à jour d’un enregistrement, n’effectuer un traitement que si une colonne spécifique a été modifiée : IF UPDATING (liste de colonnes à modifier) THEN

(13)

Les triggers

Un trigger traitant des enregistrements en cours de modification, il est possible d’accéder à la valeur des données avant et après modification. Pour chaque colonne de la table, on a :

:old.nom_de_la_colonne :new.nom_de_la_colonne

(14)

Les triggers

Les valeurs new et old apparaissent en fonction du type d’action. Dans le cas d’une

INSERT : seule la valeur new existe, la valeur old n’ayant pas de sens pour un enregistrement en cours de création.

UPDATE : les valeurs new et old co-existent, DELETE : on ne retrouvera que la valeur old.

(15)

Les triggers

(16)

Les triggers

(17)

Les triggers

(18)

Les triggers

(19)

Les triggers

(20)

Les triggers

Références

Documents relatifs

Consigne : Colle les étiquettes avant ou après les animaux ci-dessous suivant l’ordre d’apparition de ces derniers dans Le

Pour trouver le sujet du verbe, on pose la question Qui est-ce qui?. ou

On dit souvent que les joueurs de tennis ont un bras plus court que l’autre.. 1 Note les deux mots qui se prononcent de la

Christian Poslaniec : On dirait que tu as abandonné Pierrot et Colombine, ainsi que l'encre, en même temps que fermait l'atelier du vieux Mans.. On commence par

► est correspond au verbe être conjugué à la troisième personne du singulier du présent de l'indicatif.. Il peut être remplacé par était (verbe être à l'imparfait) Exemple :

other knowledge management techniques for post event review, and 56 AAR reports or other forms of post-event review, which describe the methodologies used for specific events

Reboux, Politique mode d'emploi - Le Président de la République ;Premier ministre, le pouvoir exécutif et le rôle du gouvernement 2011..

Keesom (Leyde), Rollin (Oxford), Allen Udin et Peierls (Cambridge): l’hélium II conduit incroyablement bien la chaleur... le film