Les Allergies
Alimentaires
Posez votre question Signaler

{Oracle} trigger ou pas ? -- Oracle Débutant

slaxware 58Messages postés 5 décembre 2008Date d'inscription 9 mai 2011Dernière intervention - Dernière réponse le 2 mars 2010 à 21:49
Bonjour,
J'explique mon problème.
Je souhaite créer une Bdd pour le suivi de mon véhicule (nombres de kilomètre, nombre de litres ajoutés, penus changés etc...)
Sur une seule table, j'ai la date (primary key), nombre de kilométre actuel, nombre de kilometre avant le rajout de litre, nombre de litre ajouté puis d'autre colonnes...
mon probleme. Je calcule la consommation moyenne par rapport à la différence des deux colonnes concernant les kilomètres, ici pas de souçi, par contre lors d'un insert into, je veux récuperer la valeur de la colonne nombre de kilométre actuel du n-uplets d'avant. Pour éviter de rentrer à chaque fois les deux valeur kilométriques.
je dois surement utiliser un trigger mais je n'arrive même pas à démarrer; comment identifier la valeur 'nombre de kilomètre actuel' dans le n-uplet précèdent ?
J'espère avoir été assez clair.
Cordialement
Lire la suite 

{Oracle} trigger ou pas ? -- Oracle Débutant »

2 réponses
Réponse
+0
moins plus
Salut,

Pas de bol, Oracle est clair sur le sujet : un trigger sur un table ne peut consulter/modifier quoi que ce soit dans cette table.
Donc, ton insertion devra être du genre :
insert into matable
select to_date('xx/xx/xx', 'dd/mm/yy') -- xx/xx/xx est la date provenant du formulaire
, max(nombre_de_kilometres) -- le max de kilometres trouvable dans matable
, nnnnnn1 -- c'est le nb de km avant ajout provenant du formulaire
, nnnnnn2 -- c'est le nb de litres ajoutés provenant du formulaire
from matable

je te laisse remplacer matable par le nom de ta table, xx/xx/xx et les nnnnnni par les valeurs en provenance de ton formualire & nombre_de_kilometres par le nom exact de la colonne. Et je te laisse ajouter les prédicats qui vont bien pour t'assurer que le select dans cet insert ne renvoie bien qu'une seule ligne.
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour ta réponse rapide.
Effectivement, je vois bien que ta méthode fonctionne (je me rend bien compte que je suis débutant, n'ayant pas encore ce genre de raisonnement).
J'essaye ça rapidement (pour la fin de la semaine) et je t'en dis le résultat.

Par contre, tu dis 'Oracle est clair sur le sujet', ce qui veut dire que sous d'autres Bdd, je pourrais ??

Cordialement
Ajouter un commentaire
Ce document intitulé « {Oracle} trigger ou pas ? -- Oracle Débutant » 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 ?