Posez votre question Signaler

Trigger [Oracle]

londuba 89Messages postés 30 novembre 2005Date d'inscription 25 octobre 2011Dernière intervention - Dernière réponse le 26 août 2008 à 15:16
Bonjour,
j'utilise oracle 10g express, j'ai une table T1 dont je veux appliquer un trigger qui interdit l'insertion pour eviter un doublon dans un chanp C1, au moment d'insérer s'il existe la même donnée dans le champ je veux que mon trigger refuse cette insertion en fait je connait pas les trigger mais d'après mes recherches sur google j'ai réussie à créer un trigger qui n'a pas d'erreur dans le code mais malheureusement qui fonctionne pas car malgré le trigger j'arrive à inserer des doublons voici mon code :
CREATE OR REPLACE TRIGGER  "Trigger_sans_erreur_compile" 
AFTER  insert on TABLE1
for each row
DECLARE CHAMP1 NUMBER(4);
begin
IF :new.CHAMP1=:old.CHAMP1 
THEN
raise_application_error(-20040,'insertion impossible');
END IF;
end;

je sais vraiment pas pourquoi j'arrive toujours à insérer des doublons.
Merci pour votre aide
Lire la suite 

Trigger [Oracle] »

4 réponses
Réponse
+0
moins plus
Bonjour,

Alors premièrement, pour ce type de trigger, il faudrait le faire avant l'insertion et non après (BEFORE INSERT)
Ensuite, pourquoi ne pas utiliser simplement une clé unique ? (sauf a faire des tests)...

A plus
Ajouter un commentaire
Réponse
+0
moins plus
Merci asever pour ta reponse rapide, j'ai essayer avec before update mais j'arrive toujours à inserer les doublons en fait il est vraie qu'on peut avoir d'autres alternatives mais je dois le gérer avec un trigger.
asevere- 26 août 2008 à 15:01
Before INSERT, j'ai modifier, mais le mail à du partir avec Before UPDATE.... c'est bien Before INSERT qu'il faut utiliser
Ajouter un commentaire
Réponse
+0
moins plus
Oui j'ai vue juste mais meme avec insert je parviens toujours à insérer des doublons je sais pas s'il faut pas utiliser des requêtes select dans le begin pour tester mais je sais vraiment pas comment faire.
Ajouter un commentaire
Ce document intitulé « Trigger [Oracle] » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?