IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Vérification dans lignes déjà présentes lors d'un INSERT


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Vérification dans lignes déjà présentes lors d'un INSERT
    Bonjour,

    Je dois réaliser un exercice sur la réservation de chambre dans des hotels.

    ma base comporte 4 tables qui sont les suivantes :

    ROOM (IdRoom, RoomLibelle, RoomType, RoomPrice, #IdCenter)
    CLIENT (IdClient, CliName, CliAdrese, CliZip, CliTown, CliTel)
    BOOKING (IdO, #IdClient,, #Idcenter, NoInitialWeekBook, NbrSRoom, NbrDRoom, NbrWeek, #idRoom)
    CENTER (IdCenter, CenterLibelle, CenterTown)


    Lors d'une insertion dans la table BOOKING, je souhaiterai vérifier que l'INSERT ne soit pas en train d'essayer d'insérer une réservation pour une chambre déjà réservé à la même date.

    Pour vérifier cela, je dois vérifier que l'idclient n'est pas déjà présent dans la base pour la date de réservation demandée, en additionnant le champ NoInitialWeekBook (qui est le numéro de la semaine de l'année de début de réservation) et le champ NbrWeek (qui est le nombre de semaine reservées).

    J'ai voulu essayé de créer un trigger, mais je ne parviens pas à le faire correctement.

    Serait il possible d'avoir des indications pour effectuer cela de la bonne manière.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Est ce l'énoncé qui vous demande de vérifier que le client n'est pas déjà présent dans la base pour la date ? si c'est le cas, cet énoncé est foutrement imbécile !
    En effet, vérifier qu'une chambre est disponible, consiste à vérifier qu'il n'y a pas un autre client qui a déjà réservé cette chambre et non pas le client lui même !

    Dans tous les cas, un triger n'est pas la bonne solution pour effectuer ce contrôle, faites une requete dans le traitement de réservation pour faire cette vérification

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Dans tous les cas, un trigger n'est pas la bonne solution pour effectuer ce contrôle, faites une requête dans le traitement de réservation pour faire cette vérification
    Tout à fait, et verrouillez la ressource à tester, la chambre a priori, via la clause FOR UPDATE afin de s'assurer que 2 réservations sur une même chambre ne peuvent se faire en même temps.

    Par exemple :
    Time intervals with no overlaps

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/10/2011, 09h56
  2. Réponses: 1
    Dernier message: 30/05/2011, 00h40
  3. Réponses: 1
    Dernier message: 27/05/2009, 20h16
  4. Réponses: 3
    Dernier message: 15/05/2009, 22h17
  5. Réponses: 2
    Dernier message: 15/11/2007, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo