Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Nouveau Membre du Club
    Homme Profil pro Cédric Müller
    Développeur application lié aux télécommunication
    Inscrit en
    juin 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Nom : Homme Cédric Müller
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur application lié aux télécommunication
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2008
    Messages : 102
    Points : 38
    Points
    38

    Par défaut mise a jour automatique de plusieurs champs en même temps

    Bonjours, toujours dans le cadre du développement de ma base, je doit applique l’intégrité référentielle en cascade mais je me retrouve bloqué et sollicite donc votre aide.

    Je dispose d'une table nommé Produit. celle-ci dispose des champs suivant
    Idx, int non null
    ID, nchar(13) non null, PK
    Prix decimal(8,4) non null
    Quantité int non null
    Prix unitaire décimal(8,4) non null (calculé Prix / quantité)

    J'ai une autre table Preparation
    Idx, int non null
    ID, nchar(13) non null PK
    Produit nchar(13) non null, FK sur ID de la table produit
    Prix decimal(8,4)

    J'applique l'integrité référentielle en cascade sur update et delete sur la FK
    Cela marche bien, si l'id change dans la table produit, celui-ci et mis a jour automatiquement dans la table prepa

    Le prix de la table Prepa et lié a la table Produit
    J'aurai aimé mettre un champs calculé du genre = Produit.[Prix unitaire] mais apparemment je peu pas faire un champs calculé a partir d'un champs d'un autre table. Si cela est possible et que quelqu'un a la solution je suis preneur.

    ensuite j'aurai aimé appliqué l’intégrité sur le dit champs, c'est a dire mettre automatiquement a jour le champs prix de la table prepa si la valeur change dans la table produit. j'ai essayé de crée un FK mais cela ne marche pas car il n'y a pas de contrainte d'unicité (normal me dirait vous)
    y a t'il une solution ? j'ai commencé a regardé via les trigger mais comme je n'en ai jamais fait auparavant je suis un peu perdu.

    merci d'avance

  2. #2
    Nouveau Membre du Club
    Homme Profil pro Cédric Müller
    Développeur application lié aux télécommunication
    Inscrit en
    juin 2008
    Messages
    102
    Détails du profil
    Informations personnelles :
    Nom : Homme Cédric Müller
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Développeur application lié aux télécommunication
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2008
    Messages : 102
    Points : 38
    Points
    38

    Par défaut

    Je pense avoir trouvé la solution après une apres-midi d'essai et de galère
    je test un trigger sur la table product apres update en utilisant la fonction merge . . . je vais vois ce que cela donne
    a+

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    2 915
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 2 915
    Points : 4 870
    Points
    4 870

    Par défaut

    Bonjour,

    Je pense que vous êtes partis dans la mauvaise direction, et un trigger ne me semble pas le plus adapté. A mon avis, cette colonne prix n'a rien à faire dans votre table Préparation. Vous devriez plutôt créer une vue pour vos préparations, indiquant le prix.

    Cependant, avant ça, vous devriez revoir vos clef primaires : le NCHAR(13) n'est pas une bonne idée... à quoi correspondent les colonne idx ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •