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

Administration Oracle Discussion :

[9i] Contrainte NOT NULL


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Ito
    Ito est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Par défaut [9i] Contrainte NOT NULL
    Bonjour,

    Je voudrais modifier une table pour lui mettre la contrainte NOT NULL sur une colonne, mais j'ai un message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SQL> create table liste ( 
      2    ipn varchar2(3)
      3  , itl number(2)
      4  )
      5  /
     
    Table created.
     
    SQL> alter table liste add constraint nn_ipn not null (ipn)
      2  /
    alter table liste add constraint nn_ipn not null (ipn)
                                            *
    ERROR at line 1:
    ORA-00904: : invalid identifier
    Ma question est: est-il possible mettre une contrainte NOT NULL après la création de la table (comme c'est possible pour la PK, la FK, la contrainte CHECK) ? Si oui, quelle est la bonne syntaxe ? Sinon, faut-il nécessairement la mettre à la création :

    create table liste (
    ipn varchar2(3) constraint nn_ipn not null
    , itl number(2)
    )
    /
    Merci d'avance.

  2. #2
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE liste modify (ipn not null) ;

  3. #3
    Ito
    Ito est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Par défaut
    Citation Envoyé par rouardg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE liste modify (ipn not null) ;
    J'ai testé et ça marche. Mais, je voudrais nommer cette contrainte ('nn_ipn') est-ce possible, si oui comment ?

    Merci.

  4. #4
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE liste ADD constraint nn_ipn check (ipn is not null) ;
    Mais je ne te le conseille pas. En effet, quand tu en seras à 250 ième table, et à nommer la 1000 ième contrainte de type NOT NULL, je pense que tu ressentiras une certaine lassitude.

  5. #5
    Ito
    Ito est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Par défaut
    Citation Envoyé par rouardg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE liste ADD constraint nn_ipn check (ipn is not null) ;
    Mais je ne te le conseille pas. En effet, quand tu en seras à 250 ième table, et à nommer la 1000 ième contrainte de type NOT NULL, je pense que tu ressentiras une certaine lassitude.
    Merci.

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par rouardg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE liste ADD constraint nn_ipn check (ipn is not null) ;
    ce n'est pas pareil, car la colonne ne sera pas affichée comme non-nulle dans un DESC (user_tab_columns.nullable='N').

  7. #7
    Ito
    Ito est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 56
    Par défaut
    Citation Envoyé par laurentschneider
    ce n'est pas pareil, car la colonne ne sera pas affichée comme non-nulle dans un DESC (user_tab_columns.nullable='N').
    Bonjour,

    Je ne saisis pas la nuance, peux-tu m'expliquer ?

    Merci.

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par Ito
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SQL> create table liste ( 
      2    ipn varchar2(3)
      3  , itl number(2)
      4  )
      5  /
     
    Table created.
     
    SQL> alter table liste add constraint nn_ipn not null (ipn)
      2  /
    alter table liste add constraint nn_ipn not null (ipn)
                                            *
    ERROR at line 1:
    ORA-00904: : invalid identifier
    je viens de trouver réponse à ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter table liste modify (ipn constraint nn_ipn not null);

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

Discussions similaires

  1. Ajouter la contrainte NOT NULL en utilisant ALTER TABLE
    Par la_poupee_irradiee dans le forum Développement
    Réponses: 4
    Dernier message: 23/06/2009, 23h21
  2. Alter table pour l'ajout de contrainte not null
    Par jean sami dans le forum SQL
    Réponses: 6
    Dernier message: 18/09/2008, 18h42
  3. Contraint not null
    Par Vince7-7 dans le forum Oracle
    Réponses: 5
    Dernier message: 01/10/2007, 15h50
  4. Ajouter une contrainte NOT NULL à une colonne
    Par abdelghani_k dans le forum Firebird
    Réponses: 1
    Dernier message: 03/06/2007, 17h26
  5. Ajouter la contrainte NOT NULL a une colone [Firebird 1.5]
    Par crocodingo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2004, 19h52

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