Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
806 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Mysql]??? champ NOT NULL???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Mysql]??? champ NOT NULL???

n°196447
oups93
tout le monde fait des erreurs
Posté le 17-08-2002 à 20:48:12  profilanswer
 

J'ai un petit pb sur ma bdd Mysql.
Je voudrais avoir une table avec 2 champs en INT, not null, en clef primaire + un 3eme champs pr l'ID de l'enregistrement:
Hors, quand je crée la table:
CREATE TABLE `login_dvd` (
  `id` INT NOT NULL AUTO_INCREMENT,  
  `id_login` INT NOT NULL,  
  `id_dvd` INT NOT NULL,
  INDEX (`id`),
  UNIQUE (`id_login`, `id_dvd`)
);
Je me vois attribuer dans le champs "Default"=0  :??:  
=> Oh ben non alors!!! si j'ai spécifié not null c'est pr éviter qu'on le laisse vide en inserant un enregistrement et pas qu'il m'insere un "0" !!!
Donc j'ai essayé d'en faire des vARCHAR avec not null et DEFAULT ="".
Et là j'ai bien rien dans le champs Default.
Mais quand je test le table en faisant :
INSERT INTO `login_dvd` (`id`, `id_login`, `id_dvd`) VALUES ('', '1', '';);
Et ben là, y a pas d'erreur et je vois dans la table un champs vide alors.... :??:  :??:  :??:  
Quelqu'un peu m'aider?


Message édité par oups93 le 17-08-2002 à 23:31:14
mood
Publicité
Posté le 17-08-2002 à 20:48:12  profilanswer
 

n°196451
trueslash
(╯°□°)╯︵ MMM
Posté le 17-08-2002 à 21:13:20  profilanswer
 

euh, si tu as une valeur par défaut sur un champs et qu'il est spécifié 'not null', je pense que c le 'not null' qui est le plus fort et donc, que la valeur par défaut ne sera jamais utilisée :/

n°196454
oups93
tout le monde fait des erreurs
Posté le 17-08-2002 à 21:28:57  profilanswer
 

oui mais quand j'insere un enregistrement en spécifiant qu'une valeur sur les 2, je m'attends à avoir une erreur mais non!! il m'attribut la valeur par défaut :sarcastic:

n°196455
darklord
You're welcome
Posté le 17-08-2002 à 21:48:02  profilanswer
 

tu es sur que la déclaration SQL ci dessus est celle qui est en vigueur dans ta base?


---------------
Just because you feel good does not make you right
n°196459
joce
Architecte / Développeur principal
"BugHunter"
Posté le 17-08-2002 à 21:52:19  profilanswer
 

NOT NULL ca a rien avoir avec 0 ou pas.
NOT NULL, ca veut dire que tu ne peux pas avoir de champ NULL.
Un champ NULL c'est une valeur non attribuée, tandis que 0 c'est une valeur qui existe (0 != NULL !)

n°196463
joce
Architecte / Développeur principal
"BugHunter"
Posté le 17-08-2002 à 21:54:46  profilanswer
 

Si tu veux que ca t'insère "rien", au contraire, il faut que tu déclares ton champ en NULL default='NULL'

n°196490
oups93
tout le monde fait des erreurs
Posté le 17-08-2002 à 23:27:44  profilanswer
 

DarkLord a écrit a écrit :

tu es sur que la déclaration SQL ci dessus est celle qui est en vigueur dans ta base?




j'ai fait un copier/copier des requetes éxécutées

n°196493
oups93
tout le monde fait des erreurs
Posté le 17-08-2002 à 23:30:07  profilanswer
 

joce a écrit a écrit :

NOT NULL ca a rien avoir avec 0 ou pas.
NOT NULL, ca veut dire que tu ne peux pas avoir de champ NULL.
Un champ NULL c'est une valeur non attribuée, tandis que 0 c'est une valeur qui existe (0 != NULL !)




C'est exactement ce que je cherche à faire.
Lors d'un insert d'un nouvel enregistrement je veux que tous les champs soit spécifié sinon je ne veux pas qu'on me mette un truc au pif ou par défaut.

n°196500
joce
Architecte / Développeur principal
"BugHunter"
Posté le 17-08-2002 à 23:39:01  profilanswer
 

oups93 a écrit a écrit :

 
C'est exactement ce que je cherche à faire.
Lors d'un insert d'un nouvel enregistrement je veux que tous les champs soit spécifié sinon je ne veux pas qu'on me mette un truc au pif ou par défaut.




c'est un champ INT, donc il te mettra forcement un entier ! (celui specifié par defaut)
je comprends pas ton problème, qu'est ce que tu veux qu'il te mette :??:


Message édité par joce le 17-08-2002 à 23:39:27
n°196505
oups93
tout le monde fait des erreurs
Posté le 17-08-2002 à 23:43:30  profilanswer
 

Au fait, je cherche à avoir un champ où on est obligé de spécifier la valeur pour pouvoir insérer un enregistrement.
Dans le cas où celui-si n'est pas spécifier
=> pas d'insertion, encore moins une valeur par défaut.
 
D'où mon test avec un champ en VARCHAR avec default="" et NOT NULL.=> mais ça marche po (décrit ci-dessus) :??:

mood
Publicité
Posté le 17-08-2002 à 23:43:30  profilanswer
 

n°196514
oups93
tout le monde fait des erreurs
Posté le 18-08-2002 à 00:04:21  profilanswer
 

Je viens de refaire la manip et ça a l'air de fonctionner comme je veux...  
Alors je suis désolé de vous avoir embrouiller :sweat: mais je reviens si ça foire encore... :sol:

n°196519
trueslash
(╯°□°)╯︵ MMM
Posté le 18-08-2002 à 01:44:29  profilanswer
 

au pire, tout sgbd qui se respecte ne doit pas accepter de valeurs nulles comme clé dc ça doit marcher ...
 


---------------
sympathisant UBCT
n°197626
joce
Architecte / Développeur principal
"BugHunter"
Posté le 20-08-2002 à 01:55:48  profilanswer
 

trueslash a écrit a écrit :

au pire, tout sgbd qui se respecte ne doit pas accepter de valeurs nulles comme clé dc ça doit marcher ...
 
 



avec mysql tu peux mettre un index sur un champ NULL

n°197627
joce
Architecte / Développeur principal
"BugHunter"
Posté le 20-08-2002 à 01:57:16  profilanswer
 

oups93 a écrit a écrit :

Au fait, je cherche à avoir un champ où on est obligé de spécifier la valeur pour pouvoir insérer un enregistrement.
Dans le cas où celui-si n'est pas spécifier
=> pas d'insertion, encore moins une valeur par défaut.
 
D'où mon test avec un champ en VARCHAR avec default="" et NOT NULL.=> mais ça marche po (décrit ci-dessus) :??:  




je vois pas pkoi ca marcherait :??:
VARCHAR default="" NOT NULL ca veut dire que si tu spécifies rien il va te mettre une chaine vide (ce qui est totalement différent de NULL)

n°197628
joce
Architecte / Développeur principal
"BugHunter"
Posté le 20-08-2002 à 01:58:05  profilanswer
 

si tu mets INSERT INTO `login_dvd` (`id`, `id_login`, `id_dvd`) VALUES (NULL, '1', NULL); il fait quoi ?

n°198231
trueslash
(╯°□°)╯︵ MMM
Posté le 20-08-2002 à 21:19:47  profilanswer
 

joce a écrit a écrit :

avec mysql tu peux mettre un index sur un champ NULL




 
 
chavais pas pour l'index mais pour la clé ça me parait impossible :/


---------------
sympathisant UBCT

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Mysql]??? champ NOT NULL???

 

Sujets relatifs
[mysql] comment créer un user ?Mysql
[MySQL] comment lire juste une colonne d'une tableremplissage d'un champ de formulaire
valeur d'un champQuestion sur MySQL et index
[PHP]prob mysqlcherche tutorial pour exploter mysql
problème de comptage avec mysql... (résolu)[java] Est il possible avec JBuilder perso de se connecter à MySQL ?
Plus de sujets relatifs à : [Mysql]??? champ NOT NULL???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR