Chaque fois que j'essaie de faire une instruction insertion dans ma Dastabase, je reçois une "valeur décimale incorrecte:" null "pour la colonne" Bounty3 "à la ligne 1". Comment insérer une valeur nulle dans un type de données décimal? Devrais-je simplement faire la valeur par défaut 0.00?
Incorrect decimal value: 'NULL' for column 'bounty3' at row 1 Whole query: INSERT INTO songs (userid, wavURL, mp3URL, genre, songTitle, BPM, insWanted, bounty, insWanted2, bounty2, insWanted3, bounty3, insWanted4, bounty4, insWanted5, bounty5, insWanted6, bounty6, insWanted7, bounty7, insWanted8, bounty8, insWanted9, bounty9, insWanted10, bounty10) VALUES ('12534545', '/audio/wav/jqmrgpfcMichael/143922765110secreason.wav', '/audio/mp3/jqmrgpfcMichael/143922765110secreason.mp3', 'Rock/Funk', 'title', '110', 'bass', '110.00', 'guitar', '20.00', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL')
11 Réponses :
Utilisez vide, pas null, si vous souhaitez la valeur par défaut. P>
-1 Si vous déclarez la colonne avec une valeur par défaut, insertionner null code> déclenchera la valeur par défaut à utiliser. L'OP a pas b> a déclaré une valeur par défaut sur un Not NULL code> une erreur est émis une erreur. Insertion de blanc '' ' code> n'est pas b> Insérer la valeur par défaut. Il insère 0 code>.
Toujours -1, mais apparemment, l'OP insère 'null' code> dans la décimale et s'attendant à ce que MySQL le voie est null code> et non une chaîne remplie de n.u.l.l.
Vous devez vous assurer que votre schéma de base de données permet des valeurs null pour cette colonne. Exécutez Si le schéma ne permet pas null, vous pouvez utiliser Décrivez alter Table code> pour changer le schéma. Assurez-vous de ne pas spécifier pas null code> pour cette colonne et que vous devriez être bien. P>
OH .. Vous essayez d'insérer une chaîne vide '' dans Bounty3. Remplacez-le par null. J'ai également remarqué des chaînes vides pour d'autres valeurs numériques possibles, par exemple BONTY4. Vous devez remplacer toutes les chaînes vides avec NULL pour les valeurs numériques. P>
par exemple: mysql_query ("insérer dans vide_number, valeurs de numéro (null, 1)"); p>
EDIT STRT>: Hey Hey Obtenez le point, vous ne pouvez pas insérer NULL à une valeur numérique comme "null" car il s'agit d'une chaîne, vous devez insérer comme null sans guillemets P>
Vous pouvez exécuter cette requête pour permettre aux valeurs null dans le champ "Bounty3". p>
alter Table chansons code> Changer Bounty3 code> Bounty3 Code> Décimal (10,0) NULL; P>
Je permet de null sur ce champ. Il ne semble tout simplement pas fonctionner pour un type de données décimal (ce que je crois avoir besoin de transactions financières ...)
Je viens de traiter cette question dans MySQL 5.1.61. Si le serveur est en mode strict, vous devez entrer 0 au lieu de '' pour les champs décimaux. La désactivation du mode strict vous permet de simplement faire »pour renseigner une valeur null. P>
Assurez-vous que le type de champ permet aux valeurs Utilisez: p> null code> et que la valeur par défaut est null code>. UPDATE table_name SET date_field=IF('$date_value'='',NULL,'$date_value')
Merci, cela a fonctionné à l'aide de NULL quand il est vide:
$conn->bindParam(':'.$valor, ( $key[0] ? $key[0] : NULL ), PDO::PARAM_STR);
Une autre option consiste à vous assurer que dans vos données source, les cellules vides ou les champs contiennent «NULL» avant de les importer dans MySQL. De cette façon, MySQL reconnaîtra ces champs comme étant vraiment em> null, et ne les transformera pas sur 0. P>
pas null code> dans sa définition) li>
-
Valeur par défaut du champ NULL. P>
ex .: prix décimal (12,2) NULL par défaut code> p> li>
- Maintenant, pour le tester, stocker un certain nombre, puis '' (une chaîne vide) dans ce champ - il devrait devenir null à la fin. Li>
ol>
Le champ est probablement numérique. Si le champ est numérique, seuls les numéros sont acceptés. La chaîne vide n'est pas acceptée ni la chaîne nulle p> ('null' qui est juste une corde, rien à voir avec le Valeur nulle réelle, alors "NULL" SI similaire à «Biel Bee» si vous voulez). p> Donc, si la colonne est numérique, elle ne prendra que des chiffres. Toutefois, si la colonne est nullable, elle acceptera également NULL. Cela signifie que votre insert doit avoir p> si vous appuyez sur NULL sur une telle colonne et la colonne a une valeur par défaut, la valeur par défaut sera utilisée à la place de la null que vous poussez. p> p>
Cela a fonctionné por moi lorsque des données postales sont reçues: ... Si ($ valeur == '') {$ valeur = '0.0';} ... p>
Pouvez-vous s'il vous plaît ne pas coller l'instruction Code / MySQL qui insère les données.
Assurez-vous que votre définition de table permet des valeurs nulles pour cette colonne. Si cela ne vous aide pas à nous montrer votre code et votre définition de données.
J'ai mis à jour avec mon instruction insertion. J'ai effacé la valeur «null» et je reçois maintenant cette erreur.
Voir les modifications de ma réponse - Peut-être que cela aiderait.