Problème mysql

Résolu
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -  
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Mon problème est le suivant :
J'ai une table mysql définie ainsi :
`parution` int(4) DEFAULT NULL


mais lorsque j'essaye d'insérer une valeur vide, comme ceci :
INSERT INTO ma_table ( parution ) VALUES ('') ;


le serveur me retourne le message d'erreurs suivant :
Incorrect integer value: '' for column 'parution' at row 1


Je ne comprends pas. Le serveur ne devrait pas mettre NULL par défaut ?

3 réponses

le père
 
Bonjour

C'est normal, comme indiqué dans la doc mySQL, NULL et la chaine vide '' ne sont pas la même chose. Tu aurais dû mettre
INSERT INTO ma_table ( parution ) VALUES (NULL) ;

Mais ce que je ne comprends pas, c'est que chez moi ton exemple marche, question de version de mySQL peut-être ?
1
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   58
 
Salut, et merci de ta réponse.

Je n'ai pas le temps d'essayer ça aujourd'hui. Je verrai plus tard.
Mais pour ce qui est du succès de l'opération chez toi, je pense que c'est une histoire du réglage du serveur. Dans my.ini, le paramètre sql-mode ne contient probablement pas "STRICT_TRANS_TABLES".

Je pourrais biensûr l'enlever moi aussi. Dans ce cas ça marche. Mais l'expérience m'a montré quelque fois qu'il vallait mieux programmer vraiment dans les règles de l'art pour ne pas avoir de mauvaises surprises par la suite.
0
juanou Messages postés 137 Date d'inscription   Statut Membre Dernière intervention   58
 
Ca y est. J'ai essayé ce que tu me recommandais.
Ca marche nikel.

Je pensais que si je rentrais "" dans ma table, le serveur se chargerait d'attribuer la valeur par défaut (NULL, en l'occurence). C'est là que je me trompais.

Merci le père.
0