Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
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 02/05/2005, 16h22   #1
Invité régulier
 
Inscription : février 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 34
Points : 6
Points : 6
Par défaut [interbase]changer la propriété not null

bonjour voila , j'ai créé une base il y a quelques temps et j'ai oublier de regler la propriété not null de certains champs.
tous mes champs permettent de ne pas rentrer de valeurs et je voudrais changer cela pour que certains n acceptent pas de champs null.
j ai essayer
Code :
ALTER TABLE patient ALTER nom NOT NULL
et aussi
Code :
ALTER TABLE patient ALTER nom TO nom varchar(30)NOT NULL;
mais cela ne marche pas quelqu un aurait il une idée merci
macadam314 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2005, 17h22   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
As-tu essayé avec l'outil IBExpert ?
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 08h59   #3
Membre confirmé
 
Avatar de TMuet
 
Homme Olivier Muet
Responsable de service informatique
Inscription : septembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Olivier Muet
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 222
Points : 254
Points : 254
Le problème est que si tu essaies de passer not null un champ qui contient des valeurs vides... cela peut causer quelques soucis à la base de données

Il faut d'abord t'assurer que toutes les valeurs de la colonnes sont not null AVANT de procéder au alter table
TMuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 15h48   #4
Invité régulier
 
Inscription : février 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 34
Points : 6
Points : 6
donc en fait si je veux que ca marche il faut que tous mes champs soient remplis.
pourtant j ai essayer avec des tables vide de tout enregistrement,je crois que c'est parce que je ne tape pas la bonne commande;donc si quelqu un a une idée de la commande faite moi signe
merci
macadam314 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 16h58   #5
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
La reponse se trouve dans le forum, par exemple ici :
http://www.developpez.net/forums/viewtopic.php?t=289845
Code :
1
2
3
4
UPDATE RDB$RELATION_FIELDS SET
RDB$NULL_FLAG = 1
WHERE (RDB$FIELD_NAME = 'NOMCOLONNE') AND
(RDB$RELATION_NAME = 'NOMTABLE')
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 17h38   #6
Membre confirmé
 
Avatar de TMuet
 
Homme Olivier Muet
Responsable de service informatique
Inscription : septembre 2003
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Olivier Muet
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2003
Messages : 222
Points : 254
Points : 254
La méthode de Barbibulle est effectivement correcte (les méthodes de Barbibulle sont toujours excellentes ).

Elle présente quand même (à mon humble avis) au moins un inconvénient : il n'y a pas de contrôle de validité

La mise à jour de la table système indique à Firebird que la colonne est désormais not null alors même qu'il reste des valeurs null.
Cela peut occasionner quelques soucis (il me semble bien qu'il n'est pas possible de restaurer une base qui présenterait ce "problème").
TMuet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 18h00   #7
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
C'est bien pour ca que je précise (dans le lien) qu'il faut updater toutes les valeurs nulles.

Pour info le "Alter table ... not null" n'est pas implémenté. L'autre solution qui utilise les Alter table consiste à créer une seconde colonne not null copier les données de la 1ere colonne effacer la 1ere colonne, renommer la 2eme colonne...
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2005, 12h14   #8
Invité régulier
 
Inscription : février 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 34
Points : 6
Points : 6
ok merci je vais tester ca
macadam314 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 19h09.


 
 
 
 
Partenaires

Hébergement Web