Page 1 sur 1

NOT NULL non fonctionnel

Posté : 26 avr. 2007, 17:41
par Darkbibou
Bonjour a tous :D

Je viens de créer la table suivante:

Code : Tout sélectionner

CREATE TABLE `traitement` ( `Nom_traitement` varchar(20) NOT NULL COMMENT 'Primary key', `Protocole` text NOT NULL COMMENT 'Manipulation a effectuer pour creer une lame avec ce protocole', PRIMARY KEY (`Nom_traitement`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Liste des traitements existant et leur protocole';
et d'exécuter la requête suivante:

Code : Tout sélectionner

INSERT INTO `traitement` ( `Nom_traitement` , `Protocole` ) VALUES ('', '');
Et au lieu de me dire que c'est impossible d'ajouter des champs vide la requête fonctionne et m'ajoute une ligne d'enregistrement vide, comment est ce possible ?!! :shock:

Merci d'avance pour vos réponses :)

PS: j'utilise easyphp 2.0 beta1 avec MySQL 5.0.27

Posté : 26 avr. 2007, 17:55
par Sékiltoyai
Pourquoi ne pourrait-il pas ajouter des lignes vides ?

Posté : 26 avr. 2007, 18:02
par zeus
Effectivement, la chaine vide est différente de la valeur NULL.

De plus, comme il s'agit de ta 1ère ligne insérée, ta contrainte d'unicité de ta clé primaire n'entre pas en compte et rien n'interdit l'insertion

Posté : 26 avr. 2007, 18:15
par Darkbibou
OKi merci je n'avais pas compris cette nuance :oops:

Donc en fait il n'y a que si je fait la requête suivante que MySQL refusera:

Code : Tout sélectionner

INSERT INTO `traitement` ( `Nom_traitement` , `Protocole` ) VALUES (null, null);
C'est bien ca ?

Posté : 26 avr. 2007, 19:58
par Hubert Roksor
Oui c'est bien ça.

Ce qu'il faut garder à l'esprit c'est que NULL représente l'absence d'information. Si on te demande combien tu veux de sucres dans ton café, NULL correspond à "je sais pas" ou même à ne pas répondre du tout. Si tu ne veux pas de sucres dans ton café alors la réponse est 0. Également à garder à l'esprit même si ce n'est pas lié à ton problème, c'est que rien n'est jamais inférieur, égal ou supérieur à NULL. "WHERE champ > NULL" ne renverra aucuns résultats. Pour continuer dans l'analogie, si un serveur SQL te demande combien de sucres et que tu réponds NULL ben il va même pas t'apporter ton café noir :lol:

Posté : 27 avr. 2007, 09:45
par zeus
Pour continuer dans l'analogie, si un serveur SQL te demande combien de sucres et que tu réponds NULL ben il va même pas t'apporter ton café noir :lol:
Un de ces jours, je veux que tu me donnes l'adresse où tu achètes tes serveurs SQL toi :mrgreen:
A moins que ce soit une configuration que j'ai raté :-k
:langue:

Posté : 27 avr. 2007, 11:19
par Sékiltoyai
Pour continuer dans l'analogie, si un serveur SQL te demande combien de sucres et que tu réponds NULL ben il va même pas t'apporter ton café noir :lol:
Un de ces jours, je veux que tu me donnes l'adresse où tu achètes tes serveurs SQL toi :mrgreen:
A moins que ce soit une configuration que j'ai raté :-k
:langue:
A mon avis, il doit appeler son serveur à partir de java pour avoir son café :D

Posté : 27 avr. 2007, 11:23
par Ryle
héhé, en fait tu t'étais trompé hier, c'était : java kawa.. ;)

Posté : 02 mai 2007, 10:44
par Darkbibou
Merci pour vos réponses :)