Aide sur les trigger en oracle

[Fermé]
Signaler
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008
-
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008
-
Bonjour,

j'ai un pbm avec mon script oracle . en effet , je souhaite créer un trigger qui permet d'incrementer la valeurs d'un atrribut d'une table lorke j'insere les donnés dans une autre table.
voici cmt je crée mon trigger

create trigger Ajout_commande
after insert on ligne_coms --- ma table ligne_coms
for each row
begin
update commandes
set commandes.nbrelec=( select count(*) from Ligne_coms, commandes where commandes.num_com=ligne_coms.num_com
)
end;

et ca me donne cette erreur "déclencheur crée avec erreur de compilation" losque je veus inserer dan sla table ca me di q'il ne peut pa inserer parce qu'il y a une erreur sur le trigger.

merci pour votre aide

4 réponses

Messages postés
2007
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2012
394
Bonjour,
je ne vois pas de faute de syntaxe au 1er coup d'oeil par contre fonctionnellement je ne vois pas l'interet de mettre a jour commandes.nbrelec de toutes les commandes (ben oui puisqu'il n'y a pas de where dans l'update) avec le nombre total de lignes de commandes.
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

enfait, je dois créer un trigger sur la table Lign_com qui à l'ajout d'une nvelle ligne incrémente de 1 l'attribut nbrelec dans la table commandes c'est pourkpoi j'ai ecrit ce trigger
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

enfait, je dois créer un trigger sur la table Lign_com qui à l'ajout d'une nvelle ligne incrémente de 1 l'attribut nbrelec dans la table commandes
Messages postés
2007
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2012
394
Ca je l'avais compris mais il me semble que le compteur va etre incrémenté pour toutes les commandes...bonjour le temps de réponse a chaque création si tu met a jour toutes les commandes.
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008
>
Messages postés
2007
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2012

mais comment faire si je fais j'ai essayé ca mais ce me donne tjrs la mm erreure
Avertissement : Déclencheur créé avec erreurs de compilationcreate trigger Ajout_commande
after insert on ligne_coms
for each row
begin
update commandes
select nbrelec from commandes, ligne_com where commandes.num_com=ligne_coms.num_com
set commandes.nbrelec=( select count(*) from Ligne_coms,commandes where commandes.num_com=ligne_coms.num_com )
end;
Messages postés
2007
Date d'inscription
mercredi 21 novembre 2007
Statut
Membre
Dernière intervention
22 mai 2012
394
Je suis désolé mais je ne connais pas assez les triggers, je ne faisais que donner un avis fonctionnel.
bonjour
vous pouvez initialiser "commandes.nbrelec=0" l'or de la création de la table
ensuit vous ajouter le triger
create trigger Ajout_commande
after insert on ligne_coms --- ma table ligne_coms
for each row
begin
update commandes
set commandes.nbrelec=commandes.nbrelec+1
end;
Messages postés
74
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
4 décembre 2008

merci pour ton aid emais il me done tjrs la mm erreure