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 :

contrainte de domaine


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 10
    Points
    10
    Par défaut contrainte de domaine
    bon je continue dans la creation de ma base
    et la je veux creer des domaines en particulier un numero de carte
    ma question porte sur la condition check
    numero est un char12 compris entre 0330000000 et 03399999999
    faut il faire un verification sur chaque caractere
    CONSTRAINT CTR_CARACTERE_4 CHECK (SUBSTRING(VALUE, 4, 1) BETWEEN '0' AND '9')
    ou un peu ecrire un truc du genre:
    check value between '03300000000' and '033999999999'

    merci bcp

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Bonjour Mr,

    vous devez être assez précis toutefois que vous attendez une réponse à une question.
    Le SGBDR cible ?
    Le Script de tes Tables ?
    Le Jeu de données ?
    Le resultat que vous souhaitez obtenir ?

    Merci.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    pardon j'ai ete trop elliptique

    sgbd: interbase

    la table:
    create table CARTE_ACTIVE (
    CAR_NUMBER D_NUMBERCARD not null,
    TYP_CAR_CODE CHAR(2) not null,
    DET_ID INTEGER not null,
    CAR_DATE_ACHAT_REN DATE not null,
    CAR_DATE_VALIDITE DATE not null,
    constraint PK_CARTE_ACTIVE primary key (CAR_NUMBER)
    );

    le car_number est un nombre compris entre 033000000000 et 033999999999
    donc je crée un domaine qui verifie ca mais dosi je le faire caractère à caractère ou un between suffit?

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Et la définition de D_NUMBERCARD ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    j'hesite entre ca :

    create domain D_NUMBERCARD as CHAR(12) not null
    CONSTRAINT CTR_CARACTERE_1 CHECK (SUBSTRING(VALUE, 1, 1) = '0' )
    CONSTRAINT CTR_CARACTERE_2 CHECK (SUBSTRING(VALUE, 2, 1) = '3' )
    CONSTRAINT CTR_CARACTERE_3 CHECK (SUBSTRING(VALUE, 3, 1) = '3' )
    CONSTRAINT CTR_CARACTERE_4 CHECK (SUBSTRING(VALUE, 4, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_5 CHECK (SUBSTRING(VALUE, 5, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_6 CHECK (SUBSTRING(VALUE, 6, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_7 CHECK (SUBSTRING(VALUE, 7, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_8 CHECK (SUBSTRING(VALUE, 8, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_9 CHECK (SUBSTRING(VALUE, 9, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_10 CHECK (SUBSTRING(VALUE, 10, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_11 CHECK (SUBSTRING(VALUE, 11, 1) BETWEEN '0' AND '9')
    CONSTRAINT CTR_CARACTERE_12 CHECK (SUBSTRING(VALUE, 12, 1) BETWEEN '0' AND '9');

    et ca:

    create domain D_NUMBERCARD as CHAR(12) not null
    check value between '033000000000' and '033999999999999';

  6. #6
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Points : 641
    Points
    641
    Par défaut
    Bonjour,
    Je me demandais pourquoi le domaine ne pouvait pas être de type numéric ?

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    EST CE QUE TON NUMBER_CARD DOIT AVOIR 12 CARACTERES ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    obligatoirement

    le type numeric suffit pour ce genre de nombre? le mettre directement en entier à ce moment la
    j'y ai pas pensé

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    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 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6
    Par défaut
    La contrainte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CHECK VALUE BETWEEN '0330000000' et '03399999999' AND CAST(VALUE AS INTEGER) BETWEEN 3300000000 AND 3399999999
    me parait plus simples et plus indiquée !

    A +

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 10
    Points
    10
    Par défaut
    ah merci bcp
    c'est effectivement bcp plus simple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2014, 21h23
  2. Débutant : Passage en domaine malgré des contraintes ?
    Par Allen dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 25/04/2007, 17h44
  3. Problème de contrainte dans un "CREATE DOMAIN ..."
    Par VenusX117 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2005, 18h06
  4. CONTRAINTE DE DOMAINE
    Par kitana dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 12/02/2005, 01h17
  5. Contrainte de domaine
    Par kitana dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 01/02/2005, 12h07

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