Volubis, le forum IBM i Index du Forum Volubis, le forum IBM i
avec les clubs Informatiques IPL et Bretagne.
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Create table Champ NOT NULL

 
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Client Access
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
albert06



Inscrit le: 07 Juil 2018
Messages: 16

MessagePosté le: Mer 14 Nov 2018, 16:32:31    Sujet du message: Create table Champ NOT NULL Répondre en citant

Bonjour je crée une table dans un shémas via ACS version 1.1.8.0 avec l’instruction ci-dessous.

CREATE TABLE LIEN_PARAMETRAGE FOR SYSTEM NAME TPLIEN (
ID_TYPE_LIEN FOR COLUMN IDTPLIEN CHAR(5) CCSID 297 NOT NULL DEFAULT '' ,
LIBELLE_LIEN FOR COLUMN LBLIEN CHAR(15) CCSID 297 NOT NULL ,
CONSTRAINT PK_TPLIEN_IDTPLIEN PRIMARY KEY( ID_TYPE_LIEN ) )

RCDFMT TPLIENR ;

LABEL ON TABLE LIEN_PARAMETRAGE
IS 'Type de lien entre personnes' ;

LABEL ON COLUMN LIEN_PARAMETRAGE
( ID_TYPE_LIEN IS 'IDENTIFIANT TYPE LIEN' ,
LIBELLE_LIEN IS 'LIBELLE LIEN' ) ;

LABEL ON COLUMN LIEN_PARAMETRAGE
( LIBELLE_LIEN TEXT IS 'LIBELLE LIEN' ) ;
La table est relativement simple.
La difficulté vient du champ LIBELLE_LIEN. Ce champ est spécifié NOT NULL et pourtant il n’est pas obligatoire !
Connaissez-vous une méthode pour le rendre obligatoire ? Et pourriez-vous m’expliquer l’utilité de l’instruction NOT NULL ?
Merci pour vos réponses.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
thomas.barberot



Inscrit le: 12 Avr 2012
Messages: 48

MessagePosté le: Mer 14 Nov 2018, 16:44:43    Sujet du message: (sujet inconnu) Répondre en citant

NOT NULL et obligatoire ne sont pas des notions qui se comparent vraiment.

le NOT NULL impose qu'il y ait une valeur non nulle dans la champ, par exemple des caractères blancs (comme sur l'instruction), mais aussi n'importe valeur par défaut comme 'BONJOUR' ou CURRENT_USER.
Mais un champ rempli de blanc comme le vôtre est-il considéré comme ne répondant pas au critère "obligatoire" ? Pas d'un point de vue système.

Je pense que ce que vous voulez, c'est une unicité sur la colonne. Il faut donc créer une contrainte UNIQUE sur cette colonne. On pourra alors insérer une fois un libellé "à blanc", mais pas deux.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
florian67



Inscrit le: 23 Déc 2013
Messages: 128

MessagePosté le: Mer 14 Nov 2018, 16:46:24    Sujet du message: (sujet inconnu) Répondre en citant

Salut,

Comment Est-ce que tu fais ton insert ?
Par un programme RPG?

Je pense que le problème vient que le "NULL" n'existe pas vraiment dans l'IBMi. Une variable peut être à blanc mais pas à NULL. (Il me semble)

Florian
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
mgris



Inscrit le: 04 Oct 2018
Messages: 3

MessagePosté le: Mer 14 Nov 2018, 17:20:34    Sujet du message: Create table Champ NOT NULL Répondre en citant

Bonjour,
La notion de Null et d'obligatoire sont effectivement deux choses différentes.
Not Null implique qu'il y ait une donnée dans la zone mais une suite de blancs est une suite de caractères ce n'est donc pas null.
Si votre demande c'est que ce champ soit rempli de caractères différents de blancs vous pouvez ajouter une contrainte avec l'instruction
LIBELLE_LIEN FOR COLUMN LBLIEN CHAR(15) CCSID 297 NOT NULL Check (LIBELLE_LIEN <> '' )

Ainsi le LIBELLE_LIEN devra toujours être différent de blanc

Marie
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
albert06



Inscrit le: 07 Juil 2018
Messages: 16

MessagePosté le: Jeu 15 Nov 2018, 11:44:59    Sujet du message: (sujet inconnu) Répondre en citant

Bonjour et Merci,
Vos réponses m'ont permis d’éclaircir certains points.
L'option du CHECK semble correspondre à ce que je veux.
Albert.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Volubis, le forum IBM i Index du Forum -> Client Access Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com

Anti Bot Question MOD - phpBB MOD against Spam Bots