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

SQL Firebird Discussion :

Retirer le 'not null' d'une colonne


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut Retirer le 'not null' d'une colonne
    Bonjour !

    J'aurai une demande d'avis à formuler :
    J'ai une table nommée TPOSTEPARETAPE
    Cette table comporte des champs dont un nommé STRUCTUREPARETAPE. Il est NOT NULL et FK référencant la table TSTRUCTUREPARETAPE.
    Je désire retirer le NOT NULL sur ce champ en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update RDB$RELATION_FIELDS set
    RDB$NULL_FLAG = NULL
    where (RDB$FIELD_NAME = 'STRUCTUREPARETAPE') and
    (RDB$RELATION_NAME = 'TPOSTEPARETAPE')
    ;
    Malheureusement, je ne peut toujours pas y mettre de valeur null
    J'ai aussi essayé de créer un nouveau domaine pour ce champ mais sans succès.

    Auriez-vous une idée ?
    Merci !

  2. #2
    rsc
    rsc est déconnecté
    Membre émérite
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Par défaut
    Je ne pense pas que tu puisses mettre une FOREIGN KEY à NULL, ce qui est normal, puisqu'elle doit contenir une valeur d'une clé primaire qui ne peut pas être nulle.
    Pour indiquer que cette valeur n'est pas renseignée, il faut que tu crées dans ta table de référence une valeur de clé signifiant "Non renseigné".

  3. #3
    SLE
    SLE est déconnecté
    Membre émérite Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Par défaut
    Et depuis quand on ne peut plus mettre une FK à null ? Et les liaisons 0-n alors ?

    Pourquoi aller modifier directement dans les tables système ?

    Avec ALTER TABLE ça suffit pas ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Par défaut
    Je confirme ce que dit SLE. Il n'y a aucune raison de ne pas mettre une clé étrangère à null. Et il est vrai qu'un point de vue modélisation c'est difficillement concevable car dans la réalité on trouvera toujours des situations induisant des cardinalités à 0.
    Normalement, l'affectation d'une valeur null dans une colonne référençant une autre table est tout à fait possible du moment qu'elle est "not null". La seule opération non autorisée est bien évidemment une valeur hors champ à savoir une valeur non présente dans la table de référence et non null.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Citation Envoyé par SLE
    Et depuis quand on ne peut plus mettre une FK à null ? Et les liaisons 0-n alors ?

    Pourquoi aller modifier directement dans les tables système ?

    Avec ALTER TABLE ça suffit pas ?
    Non pas moyen.
    J'ai résolu le problème en détruisant tout lien avec la table, copie des données, dropping de la table, recréation de la table sans cette contraite NOT NULL, recopie des données et refonte des liens ca fait un peu bidouillage mfin c'est fait et ca fonctionne

    Merci pour vos réponses

  6. #6
    SLE
    SLE est déconnecté
    Membre émérite Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Par défaut
    T'as pas essayé avec un outil comme IB Expert ? Il y a une version gratos (lite) qui devrait te permettre de le faire facilement...

    @+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Vi j'ai essayé ... sans succès malgré tout, cela fonctionne encore comme j'ai fait bidouille quoi

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

Discussions similaires

  1. [phpMyAdmin] comment insérer une colonne not null dans une table ?
    Par Ragnart dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 31/05/2014, 21h00
  2. Not Null d'une colonne
    Par genio dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 31/10/2007, 12h02
  3. Réponses: 5
    Dernier message: 16/02/2007, 16h03
  4. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29
  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, 18h52

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