Bonjour à tous,
Je suis étudiant en informatique (en Bac2) et je viens faire appel à vous dans l'urgence, ayant un projet à présenter à courte échéance (demain).
Voici donc mon problème :
Je dispose d'une table hp.annees à laquelle j'ai attaché une sequence seq_annees_pk, cette sequence démarre par défaut à 1 et s'incrémente de 1 à la fois.
Lorsque je fais un INSERT sur ma table hp.annees, une procédure trigger est appelée (BEFORE INSERT) et fait des vérifications pour savoir si l'année peut être insérée. Le problème est que, même si mon trigger renvoie une exception, ma séquence s'incrémente malgré tout.
J'ai pensé à plusieurs solutions :
-Existe-t-il une manière d'annuler/empêcher l'auto-incrémentation de ma séquence quand mon trigger renvoie une exception ?
-J'ai également tenté de place la ligne de code suivante juste avant ma RAISE EXCEPTION :
En vain car manifestement je ne peux rien mettre d'autre qu'un INTEGER à la suite du RESTART WITH (nb: même en mettant une variable INTEGER cela ne fonctionne pas)ALTER SEQUENCE hp.seq_annees_pk RESTART WITH ((SELECT count(*) from hp.annees)+1);
Auriez-vous une piste à me proposer ?
Merci de votre attention

 

 
		
		 
         
 

 
			
			
 
 


 Annuler/empêcher l'incrémentation d'une séquence
 Annuler/empêcher l'incrémentation d'une séquence
				 Répondre avec citation
  Répondre avec citation


 
    Envoyé par estofilo
 Envoyé par estofilo
					
 
						
Partager