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 :

cle primaire null


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Points : 331
    Points
    331
    Par défaut cle primaire null
    bonjour
    je voudrais savoir si la cle primaire d une table a une contrainte par defaut "not null"
    merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Ca peut dépendre de ton SGBD, mais dans les grands classiques : oui, toujours.

  3. #3
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par Kazzin Voir le message
    Ca peut dépendre de ton SGBD, mais dans les grands classiques : oui, toujours.
    certains SGBD ont des PK non nulle ?????

    moi je dirais que non.
    Juvamine

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Je préfère ne pas trop m'avancer, j'ai lu tellement de choses surprenantes sur certains produits ... (et c'était un moyen détourné d'indiquer à fantomas261 qu'il aurait pu nous indiquer son SGBD )

  5. #5
    Membre averti Avatar de fantomas261
    Inscrit en
    Avril 2007
    Messages
    486
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 486
    Points : 331
    Points
    331
    Par défaut
    j'utilise mysql

  6. #6
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    donc une PK sera FORCEMENT
    Juvamine

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    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 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Pour compléter ce sujet, la norme SQL autorise de créer des contraintes de clef primaires (PRIMARY KEY) sur des colonnes à priori nullable lors de la définition de la table, ce qui entraine ipso facto une contrainte NOT NULL sur toutes les colonnes visées par la clef.

    Ainsi le code suivant est totalement licite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE T_CLIENT
    (CLI_ID  INT,
     CLI_NOM VARCHAR(32)
     CONSTRAINT PK_CLI PRIMARY KEY (CLI_ID))
    Tandis que le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE T_CLIENT
    (CLI_ID  INT,
     CLI_NOM VARCHAR(32) )
     
    ALTER TABLE T_CLIENT
       ADD CONSTRAINT PK_CLI
       PRIMARY KEY (CLI_ID)
    Ne l'est pas...

    Mais le résultat est en fait le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE T_CLIENT
    (CLI_ID  INT NOT NULL,
     CLI_NOM VARCHAR(32)
     CONSTRAINT PK_CLI PRIMARY KEY (CLI_ID))

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Déterminer si un champ est une clé primaire
    Par fbalien dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/09/2019, 10h19
  2. cles primaire multi-champs dont un NULL
    Par mystikilla dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/12/2008, 18h14
  3. [debutant]cle primaire particuliere
    Par christophebmx dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/08/2004, 13h27
  4. [ db2 ] cle primaire autoincrement
    Par hocinema dans le forum DB2
    Réponses: 4
    Dernier message: 25/02/2004, 14h20
  5. XSD, Cle primaire...
    Par Goupil dans le forum Valider
    Réponses: 3
    Dernier message: 21/10/2003, 09h04

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