IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Problème Trigger insertion


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Problème Trigger insertion
    Bonjour,

    voici la définition de ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE table Representant (
    	noRepr integer,
    	primary key (noRepr)
    	)
    J'aimerai créer un trigger qui permet de checker avant chaque insertion d'une valeur ci celle-ci est correct(numérique et supérieur à 0).

    J'ai pour l'instant ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE OR REPLACE TRIGGER CheckValeur
     BEFORE INSERT ON representant 
     FOR EACH ROW 
    	BEGIN 
    	IF New.noRepr > 0 then
          insert into representant values(New.noRepr);
    	END IF; 
    	END;
    Merci de votre réponse.
    Cordialement,

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Pas besoin de trigger pour cela, il suffit de mettre une contrainte de domaine (CHECK) sur la colonne

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Juste pour éviter tout futur problème, un trigger ne remplace pas l'insertion/l'update/delete de la table.

    Donc faire un insert into representant dans un trigger before insert on representant for each row est totalement incohérent.

    Le moyen de le gérer par trigger est de générer une erreur dans le cas contraire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE OR REPLACE TRIGGER CheckValeur
     BEFORE INSERT ON representant 
     FOR EACH ROW 
    BEGIN 
    	IF NVL(:New.noRepr,0) <= 0 then RAISE_APPLICATION_ERROR(-20001, 'No repres <= 0 :'|| :New.noRepr);
    	END IF; 
    END;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger sur vue : problème à l'insertion
    Par edim34 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 29/06/2015, 09h27
  2. [MySQL-5.5] Problème trigger after insert
    Par JayenseN dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 25/03/2013, 21h05
  3. Problème avec trigger insert
    Par zaydoo dans le forum Oracle
    Réponses: 12
    Dernier message: 05/10/2011, 17h07
  4. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo