MySQL Valeur Par Défaut De La Question
Dans MySQL, la valeur par défaut pour un Champ de type Entier est de 0. Lors de l'insertion de la valeur de ce champ est NULL, la valeur NULL est insérée. Je fais quelques manipulations arithmétiques comme l'addition, la multipilcation, division de l'aide que la valeur du champ. Il en résulte erreur NULLE ai inséré. Comment résoudre ce problème? Ne pas le DB soutien valeur par défaut pour les champs comme integer,decimal(peut-être pas pour des types de chaînes, que NULL est valable pour la chaîne) si leur insertion de la valeur est null. Si Non, est-il correct d'avoir des valeurs NULL pour les types Numériques?
Pour quelque raison que Quand j'ai un champ décimal avec PAS NULLE et une VALEUR par DÉFAUT à 0, l'insertion échoue avec le message d'erreur "Données tronquées pour la colonne "Column_Name" à la ligne 1".
Si je supprime la NON NULL de la propriété, de l'insertion réussit le même message comme un avertissement.
La valeur qui est insérée dans le champ décimal est le résultat d'AVG() de MySql fonction
Vraiment Paumé...
Quelle pourrait être la raison?
OriginalL'auteur Gopi | 2009-09-21
Vous devez vous connecter pour publier un commentaire.
La valeur NULL est une valeur correcte pour n'importe quel mysql colonne /type.
vous pouvez définir la colonne not NULL ou si vous avez besoin de le résoudre dans votre langage de script, de sorte que le nul de ne pas obtenir inséré.
droit, en tant que null n'est pas autorisé, mysql va tronquer la ligne insérée. vous avez besoin pour résoudre ce dans votre script ou configurer mysql pour permettre à pour cela (bien que je ne suis pas sûr si il ya une option dans la config mysql)
Un champ NON NUL, et une valeur par défaut ne doit pas jeter l'erreur que j'ai mis une valeur par défaut si NON NULL échoue. Devrait-il pas essayer d'insérer la valeur par défaut?
OriginalL'auteur dusoft
Vous pouvez définir un champ comme
NOT NULL
pour éviter ce problème complètement. Si unNULL
valeur est indésirable, qu'est ce que vous devriez faire. Lorsqu'une colonne estNOT NULL
, la valeur par défaut pour le type 0 pour les entiers) est inséré à la place deNULL
.OriginalL'auteur Vegard Larsen
Vous devez spécifié, la valeur par défaut '0' à la structure de la table quand vous l'avez créé. Ou vous pouvez le modifier à l'aide de:
Espère que cette aide.
Mais ayant encore de la valeur par défaut n'a pas de résoudre ce problème..!
Avez-vous les moyens, la valeur qui est déjà là? Si vous avez, vous pouvez utiliser la mise à Jour pour modifier puis tout, quelque chose comme ceci: "mise à JOUR
TableName
ENSEMBLEFieldName
= '0' OÙFieldName
EST NULLE".J'ai été en mesure de modifier les valeurs null, mais quand j'insère il y a erreur de troncature comme je l'ai mentionné dans d'autres commentaires
OriginalL'auteur NawaMan
Pour insérer la valeur par défaut, vous devez spécifiez pas de valeur pour la colonne, même pas NULL, parce que la valeur NULL est une valeur spécifique.
OriginalL'auteur Residuum
SI il n'y pas de problème avec le calcul que Vous faites, changement de définition de la colonne de not NULL DEFAULT 0, alors Vous aurez toujours la bonne entier (ou virgule). Mais vous devez Vous rappeler de changer les anciennes valeurs de null à 0.
OriginalL'auteur