Aide sur les trigger en oracle

Fermé
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008 - 25 janv. 2008 à 13:10
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008 - 25 janv. 2008 à 15:27
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

PPBoyington Messages postés 2007 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 22 mai 2012 402
25 janv. 2008 à 13:17
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.
0
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008
25 janv. 2008 à 13:43
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
0
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008
25 janv. 2008 à 13:41
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
0
PPBoyington Messages postés 2007 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 22 mai 2012 402
25 janv. 2008 à 13:54
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.
0
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008 > PPBoyington Messages postés 2007 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 22 mai 2012
25 janv. 2008 à 14:10
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;
0
PPBoyington Messages postés 2007 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 22 mai 2012 402
25 janv. 2008 à 14:46
Je suis désolé mais je ne connais pas assez les triggers, je ne faisais que donner un avis fonctionnel.
0
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;
0
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008
25 janv. 2008 à 15:27
merci pour ton aid emais il me done tjrs la mm erreure
0