Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2006, 11h57   #1
Invité régulier
 
Inscription : décembre 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 11
Points : 6
Points : 6
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 :
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 !
Sherlockness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2006, 09h06   #2
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 699
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
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 : 699
Points : 874
Points : 874
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é".
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 10h33   #3
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
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 ?
SLE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 11h53   #4
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
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.
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h29   #5
Invité régulier
 
Inscription : décembre 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 11
Points : 6
Points : 6
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
Sherlockness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2007, 18h29   #6
SLE
Membre chevronné
 
Avatar de SLE
 
Homme Serge LESPAGNARD
Consultant informatique
Inscription : janvier 2004
Messages : 588
Détails du profil
Informations personnelles :
Nom : Homme Serge LESPAGNARD
Âge : 38
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : janvier 2004
Messages : 588
Points : 732
Points : 732
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...

@+
SLE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2007, 11h36   #7
Invité régulier
 
Inscription : décembre 2006
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 11
Points : 6
Points : 6
Vi j'ai essayé ... sans succès malgré tout, cela fonctionne encore comme j'ai fait bidouille quoi
Sherlockness est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h47.


 
 
 
 
Partenaires

Hébergement Web