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

Fermé
slaxware Messages postés 78 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 9 mai 2011 - 1 mars 2010 à 22:41
slaxware Messages postés 78 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 9 mai 2011 - 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

2 réponses

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.
0
slaxware Messages postés 78 Date d'inscription vendredi 5 décembre 2008 Statut Membre Dernière intervention 9 mai 2011 9
2 mars 2010 à 21:49
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
0