Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.

Slides:



Advertisements
Présentations similaires
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Advertisements

Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Les Systèmes de Gestion de Bases de Données (SGBD) Les vues.
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Quelle est la question?.
Quelle est la question?.
Smoking a regular verb cigar: the –er version The keys to putting together what you want to say!
Vues.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Programmation dapplication INT. 2 Bases de Données Plan du document Contexteslide 1 Programmer avec une BDslide 2 Client-Serveur SQL et architecture 3.
INTEGRITE ET BD ACTIVES
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
10 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux déclencheurs.
L’utilisation des bases de données
Gestion des erreurs Packages ©Alain Villeneuve, 1999
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Les choses que j aime Learning Objective: To know how to use j aime to talk about things I like to do.
PLSQL ORACLE 8i Connecter VB à BD Oracle Les collections Question de révision Les blocs anonymes Les triggers REVISION Par : Joël Huot.
SQL: Contraintes et Triggers
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
Bases de Données Avancées - TP2: SQL
Bases de Données Avancées - TP2: SQL
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
PHP & My SQL.
Packages et Types De la Spécification Formelle A l'implémentation Ada.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Le Langage de BLOC PL/SQL
Créer des déclencheurs de base de données
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Créer des packages.
INTEGRITE ET BD ACTIVES
Packages fournis par Oracle
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
(Procedural Language / Structured Query Language)
Acquisition d’information sur internet
PostgreSQL – Présentation
Module 4 : Implémentation de l'intégrité des données.
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
SQL : Langage de Manipulation des données
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
Year 10. Bon appetit unit. Introducing ‘en’. ‘en’ – ‘some of it’ or ‘some of them’ ‘En’ is a small but important word in French that is commonly used.
La Revue: Les verbes – ER. La norm: Comparisons 4.1 Understanding the nature of language What is a « regular verb »? How are regular –ER verbs conjugated?
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Définition des contraintes Vérification des contraintes Triggers
PL/SQL Présentation.
Le Langage de Contrôle de Données TRIGGERS
Procédures Stockées Fonctions Paquetages
Les bases de données Séance 8 Jointures.
1. Est-ce que Est-ce que, literally translated "is it that," can be placed at the beginning of any affirmative sentence to turn it into a question: Je.
Describing the classroom layout
Le langage SQL.
Par Mme. Cook. Aller means « to go. » Je vais Nous allons Tu vas Vous allez Il Elle va Ils, Elles vont on.
Cours n°2 Implémentation et exploitation
Introduction au langage PL/SQL
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
QU’EST-CE QUE C’EST?.
QUELLE HEURE EST-IL? (What time is it?) Pages Nicole Fecteau, Timothy Edwards Middle School, December 2015.
It’s.  Both C’est and Il est/Elle est can mean it’s.  There are specific times to use each.
Negative sentences Questions
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQL: Contraintes et Triggers
Transcription de la présentation:

Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1

Plan Caractéristiques, fonctionnalités Variables Exemple

Triggers: caractéristiques Trigger = déclencheur Automatiser des traitements sur une table ou vue en fonction de l’opération concernant la table: DELETE, INSERT, UPDATE, TRUNCATE Exemple: fabriquer un champ geometry de type POINT lors de l’insertion de valeurs X-Y provenant d’un GPS (cf. tp_triggers_simples.txt) Définition en deux étapes: 1° Ecriture de la fonction du trigger, sans arguments 2° Définition du trigger sur une table ou vue utilisant cette fonction Se déclenchent par ordre alphabetique si plusieurs triggers Peuvent être conditionnels (respect d’un condition avant déclenchement)

Triggers: caractéristiques (suite) Déclenchement pour chaque ligne, ou pour chaque « statement » Déclenchement BEFORE, AFTER ou INSTEAD OF (pour les vues) opération Peut retourner NULL (l’opération est annulée) ou une ligne (record) Peut contenir des arguments (plusieurs triggers, une seule fonction)

Triggers: variables NEW: Record, stocke la nouvelle valeur de la ligne OLD: Record, stocke l’ancienne valeur de la ligne TG_NAME: nom du trigger courant TG_WHEN: BEFORE ou AFTER ou INSTEAD OF TG_LEVEL: niveau du trigger: ROW (row-level trigger) ou STATEMENT (stmt-level trigger) TG_OP: quelle operation a déclenché le trigger INSERT, UPDATE, ou DELETE TG_RELID: OID de la ligne concernée TG_NARGS: le nombre d’arguments passés à la fonction du trigger. TG_ARGS: text[], le tableau des arguments passés à la fonction du trigger

Triggers: exemple CREATE TABLE xy ( id serial primary key, x double precision not null, y double precision not null, geom eometry(Point, 4326) ); CREATE OR REPLACE FUNCTION xyToGeom() RETURNS trigger AS $xyToGeom$ BEGIN NEW.geom := st_setSRID(st_makePoint(NEW.x, NEW.y), 4326); RETURN NEW; END; $xyToGeom$ LANGUAGE plpgsql; CREATE TRIGGER xyToGeom BEFORE INSERT OR UPDATE ON xy FOR EACH ROW EXECUTE PROCEDURE xyToGeom(); insert into xy(x, y) values (12.34, 45.56); select id, x, y, st_asText(geom) from xy ;

Triggers: exemple2 CREATE TABLE emp ( empname text, salary integer, last_date timestamp, last_user text ); CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$ BEGIN -- Check that empname and salary are given IF NEW.empname IS NULL THEN RAISE EXCEPTION 'empname cannot be null'; END IF; IF NEW.salary IS NULL THEN RAISE EXCEPTION '% cannot have null salary', NEW.empname; END IF; -- Who works for us when she must pay for it? IF NEW.salary < 0 THEN RAISE EXCEPTION '% cannot have a negative salary', NEW.empname; END IF; -- Remember who changed the payroll when NEW.last_date := current_timestamp; NEW.last_user := current_user; RETURN NEW; END; $emp_stamp$ LANGUAGE plpgsql; CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp();