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

Langage SQL Discussion :

Recherche d'une contrainte de validation


Sujet :

Langage SQL

  1. #1
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut Recherche d'une contrainte de validation
    Bonjour,

    je dois concevoir une table stockant des mesures réalisées sur des produits.
    Voici le script de création de la table:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE T_MESURE_PRODUIT
    (
        MES_ID int primary key,
        MES_VALEUR decimal(5,2),
        MES_ACTIVE bit,
        PDT_ID int
    )

    Cette table peut contenir plusieurs mesures d'un produit.
    J'aimerais ajouter une contrainte de validation sur la table pour définir:
    - parmi toutes les mesures d'un produit, il faut une et une seule mesure active, c'est à dire une mesure où MES_ACTIVE est égale à 1.

    Merci d'avance pour votre aide.
    Bye

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE ASSERTION A_ACTIVE1
    AS
    CHECK EXISTS(SELECT 1
                 FROM   T_MESURE_PRODUIT
                 WHERE  MES_ACTIVE = 1
                 GROUP  BY PDT_ID 
                 HAVING COUNT(*) = 1)
    A +

  3. #3
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut

    Ah mince, j'ai oublié de préciser un point essentiel, j'utilise SQL Server 2005.

    Mais cette requête est vraiment bien, je dois pouvoir la réutiliser autrement.
    Dans un trigger peut-être ?
    Qu'en pensez-vous ?

    Merci de votre aide.
    A bientôt

Discussions similaires

  1. [10gR2] Ajout d'une contrainte de validation des données complexes
    Par turbo_chess dans le forum SQL
    Réponses: 10
    Dernier message: 15/10/2013, 12h35
  2. [ contrainte ] supprimer une contrainte DB2
    Par hocinema dans le forum DB2
    Réponses: 4
    Dernier message: 08/01/2004, 16h01
  3. Clé matérielle - A la recherche d'une adresse ...
    Par B-Pascal dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 09/11/2003, 16h03
  4. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 16h10
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 12h54

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