Commit b700ccf8 authored by Marine Marsal's avatar Marine Marsal
Browse files

Update CREATE.sql

parent 5eb3b5ab
......@@ -162,23 +162,23 @@ CREATE TABLE IF NOT EXISTS ExemplairePret (
PRIMARY KEY (ref, pret)
);
/* ****** TRIGGERS ******
-- REPRESENTATION DES ASSOCIATIONS EXCLUSIVES, UN CONTRIBUTEUR NE PEUT AVOIR QU'UN SEUL RÔLE POUR CHAQUE RESSOURCE
-- PAS FONCTIONNEL, A DEBUG
/* ****** TRIGGERS ****** */
CREATE OR REPLACE FUNCTION check_exclusivite_realisateur()
RETURNS trigger AS
$$
DECLARE
var INTEGER;
BEGIN
DECLARE var INTEGER;
SELECT acteur INTO var FROM Acteur WHERE acteur = NEW.realisateur AND film = NEW.film;
RAISE Erreur_exclu;
SELECT * INTO var FROM Acteur a WHERE a.acteur = NEW.realisateur AND film = NEW.film;
RAISE EXCEPTION 'Erreur_exclu';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN Erreur_exclu THEN
RAISE_APPLICATION_ERROR(-20001, 'Erreur : ce contributeur existe déjà dans la table Auteur');
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE EXCEPTION 'Erreur : ce contributeur existe déjà dans la table Auteur';
RETURN NEW;
END;
$$
......@@ -191,15 +191,16 @@ EXECUTE PROCEDURE check_exclusivite_realisateur();
CREATE OR REPLACE FUNCTION check_exclusivite_acteur()
RETURNS trigger AS
$$
DECLARE
var INTEGER;
BEGIN
DECLARE var INTEGER;
SELECT realisateur INTO var FROM Realisateur WHERE realisateur = NEW.auteur AND film = NEW.film;
RAISE Erreur_exclu;
RAISE EXCEPTION 'Erreur_exclu';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN Erreur_exclu THEN
RAISE_APPLICATION_ERROR(-20001, 'Erreur : ce contributeur existe déjà dans la table Realisateur');
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE EXCEPTION 'Erreur : ce contributeur existe déjà dans la table Realisateur';
RETURN NEW;
END;
$$
......@@ -212,15 +213,16 @@ EXECUTE PROCEDURE check_exclusivite_acteur();
CREATE OR REPLACE FUNCTION check_exclusivite_compositeur()
RETURNS trigger AS
$$
DECLARE
var INTEGER;
BEGIN
DECLARE var INTEGER;
SELECT interprete INTO var FROM Interprete WHERE interprete = NEW.compositeur AND oeuvreMusicale = NEW.oeuvreMusicale;
RAISE Erreur_exclu;
RAISE EXCEPTION 'Erreur_exclu';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN Erreur_exclu THEN
RAISE_APPLICATION_ERROR(-20001, 'Erreur : ce contributeur existe déjà dans la table Interprete');
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE EXCEPTION 'Erreur : ce contributeur existe déjà dans la table Interprete';
RETURN NEW;
END;
$$
......@@ -233,15 +235,17 @@ EXECUTE PROCEDURE check_exclusivite_compositeur();
CREATE OR REPLACE FUNCTION check_exclusivite_interprete()
RETURNS trigger AS
$$
DECLARE
var INTEGER;
BEGIN
DECLARE var INTEGER;
SELECT compositeur INTO var FROM Compositeur WHERE compositeur = NEW.interprete AND oeuvreMusicale = NEW.oeuvreMusicale;
RAISE Erreur_exclu;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN Erreur_exclu THEN
RAISE_APPLICATION_ERROR(-20001, 'Erreur : ce contributeur existe déjà dans la table Compositeur');
RAISE EXCEPTION 'Erreur_exclu';
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE EXCEPTION 'Erreur : ce contributeur existe déjà dans la table Compositeur';
RETURN NEW;
END;
$$
LANGUAGE 'plpgsql';
......@@ -249,4 +253,3 @@ LANGUAGE 'plpgsql';
CREATE TRIGGER T_EXCUSIVITE_INTERPRETE BEFORE INSERT OR UPDATE ON Interprete
FOR EACH ROW
EXECUTE PROCEDURE check_exclusivite_interprete();
*/
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment