Flux rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Probleme de trigger

  sqlloader, le mardi 23 novembre 2004 à 10:14:32
Bonjour, j'ai un probleme au niveau d'un trigger que j'ai fait.
Le code est bon, il n'y a pas d'erreur mais au moment d'inserer des lignes j'ai une erreur de ce type:
"ORA-00001: violation de contrainte unique (SCOTT.PK_TESTCAPA)
ORA-06512: à "SCOTT.SURBOOKING", ligne 25
ORA-04088: erreur lors d'exécution du déclencheur 'SCOTT.SURBOOKING'"
il y a bien une contrainte de type primary key sur la table testcapa, mais en aucun cas cette erreur ne devrait apparaitre car je n'insere pas de données deja presente dans la table.
D'ou peut venir le probleme selon vous?
Voici le code du trigger:
create or replace trigger surbooking
before insert on RESERVATION
for each row
declare
cursor c1 is select dureesejour from reservation;
var INTEGER;
laCapacite INTEGER;
NombreChambresTotal INTEGER;
begin

open c1;
loop
fetch c1 into var;
exit when c1%NOTFOUND;
if var=1
then insert into testcapa(IdCentre,IdClient,NoSemaine,Annee,NombreChambresReservees)
values(:new.IdCentre,:new.IdClient,:new.NoSemaine,:new.Annee,:new.NombrechambresReservees);
end if;
if var=2
then insert into testcapa(IdCentre,IdClient,NoSemaine,Annee,NombreChambresReservees)
values(:new.IdCentre,:new.IdClient,:new.NoSemaine+1,:new.Annee,:new.NombrechambresReservees);
end if;
if var=3
then insert into testcapa(IdCentre,IdClient,NoSemaine,Annee,NombreChambresReservees)
values(:new.IdCentre,:new.IdClient,:new.NoSemaine+2,:new.Annee,:new.NombrechambresReservees);
end if;
if var=4
then insert into testcapa(IdCentre,IdClient,NoSemaine,Annee,NombreChambresReservees)
values(:new.IdCentre,:new.IdClient,:new.NoSemaine+3,:new.Annee,:new.NombrechambresReservees);
end if;
if var=5
then insert into testcapa(IdCentre,IdClient,NoSemaine,Annee,NombreChambresReservees)
values(:new.IdCentre,:new.IdClient,:new.NoSemaine+4,:new.Annee,:new.NombrechambresReservees);
end if;
end loop;


select trunc(NombreChambresDuCentre*1.05) into laCapacite
from centre c, reservation r
where c.IdCentre=r.idcentre;
select sum(NombreChambresReservees) into NombreChambresTotal
from testcapa t
where t.IdCentre=:new.idcentre
and t.NoSemaine=:new.NoSemaine
and t.Annee=:new.annee;
if NombreChambresTotal>laCapacite
then raise_application_error(-20003, 'Oooooooops');
end if;
end;
/
Répondre à sqlloader  Signaler ce message aux modérateurs
Les triggers ou declencheurs (Résolu)bonjour ! svp j'ai besoin des exercices et leurs solution en triggers (sql) sv c'est urgent ,j'espére que vous m'alliez repondre si vite si c'etait possible bien sur merci beaucoup pour votre temps et votre consideration www.commentcamarche.net/forum/affich-2424887-les-triggers-ou-declencheurs
TRIGGER SQL SERVER (Résolu)Bonjour, j'ai une base de donnée de trois tables reliées entre elles avec le sql server, table PRODUIT, table BON SORTIE et table DETAILBONSORTIE. je n'arrive pas a écrire un trigger qui me permet désque je saisie le champ QTESORTIE dans la... www.commentcamarche.net/forum/affich-3884450-trigger-sql-server
TRIGGER SQL SERVER (Résolu)Bonjour à tous, je souhaite programmer un trigger assez simple, mais je n'ai plus la syntaxe exacte en tête, la générale : c'est bon mais je ne sais plus comment on se sert de la fonction 'updated', pour retrouver un champ... www.commentcamarche.net/forum/affich-3573582-trigger-sql-server
Comment insérer un trigger avec mysql (Résolu)Bonjour, j'aimerai insérer un trigger dans une application en php, j'utilise mysql mais je ne sais pas où je dois mettre le trigger, dans la base de données? dans mon code php? www.commentcamarche.net/forum/affich-6615884-comment-inserer-un-trigger-avec-mysql
Trigger sous SQL SERVEUR 2000 (Résolu)Bonjour, N'étant pas développeur, cette question me parait insurmontable mais je suis sûr qu'en fait c'est hyper facile. Voilà, je cherche à créer un trigger qui lors d'un INSERT vérifiera d'abord que le NOMUTIL (une colonne)... www.commentcamarche.net/forum/affich-7064564-trigger-sous-sql-serveur-2000
Appel d'1 procédure ds clause when du trigger (Résolu)Bonjour, j'ai développé un trigger sur Oracle (portant sur une table =>RCV_TRANSACTIONS). Voir plus bas le détail du début de la déclaration du trigger. Ce dernier est trop permissif et je souhaiterais inclure de nouvelles restrictions dans la... www.commentcamarche.net/forum/affich-4835111-appel-d-1-procedure-ds-clause-when-du-trigger
Protection - Translation d'adresses (NAT) Le mécanisme de translation d'adresses (en anglais Network Address Translation noté NAT) a été mis au point afin de répondre à la pénurie d'adresses IP avec le protocole IPv4 (le protocole IPv6 répondra à terme à ce problème). En effet, en adressage... www.commentcamarche.net/internet/nat.php3
Toutes les réponses pour « probleme de trigger »