Je suis complètement nouveau pour les bases de données et SQL. J'ai une colonne portant le numéro NOT NULL
.
Lorsque j'oublie de donner une valeur à cette colonne lors d'un INSERT, elle insère une valeur 0 dans cette colonne.
Y at-il quelque chose que je peux faire pour lui faire retourner une erreur au lieu de changer le NULL
à 0?Pourquoi MySQL change-t-il la valeur null à zéro?
Répondre
Vous voulez jeter un oeil à la configuration SQL_MODE
. Cela vous permet de définir à quel point MySQL traite de telles choses. Par défaut, il est assez clément ce qui n'est pas ce que je veux habituellement. Cela dépend aussi du type de données, en particulier avec les dates, il est moins qu'optimal par défaut. Je vis personnellement STRICT_ALL_TABLES
habituellement.
Voir le manuel MySQL (5.0) ici:
J'ai fait "SET sql_mode = 'STRICT_ALL_TABLES';" et maintenant il renvoie un message d'erreur chaque fois que j'oublie une colonne NOT NULL. Merci beaucoup. –
Je suppose que vous avez une valeur par défaut pour cette colonne
Il y a deux raisons possibles pour cela:
- Vous avez une valeur par défaut définie pour cette colonne
- Votre colonne est
INT NOT NULL
et passe deNULL
àINT
, ce qui donne0
La deuxième situation semble être le cas ici, évidemment. Si vous voulez obtenir une erreur à la place, vous pouvez changer le SQL_MODE
pour être strict. Une autre possibilité est de faire la validation d'entrée dans votre programme plutôt que de le laisser à SQL.
- 1. Question sur la valeur NULL vs zéro
- 2. Zend Framework: Comment filtrer l'entrée, mettre zéro à zéro, puis valider la valeur null?
- 3. Pourquoi la valeur de la clé étrangère est toujours zéro?
- 4. Modification d'un SUM retourné NULL à zéro
- 5. Pourquoi NULL obtient un résultat différent de zéro?
- 6. Pourquoi mysql_num_rows retourne zéro?
- 7. mysql null à 0
- 8. Passant la valeur NULL
- 9. valeur Passing à la méthode est toujours égale à zéro
- 10. Impossible JSON sortie de MySQL - obtenir la valeur null
- 11. Comment tester la valeur d'entrée pour null ou zéro avec jQuery
- 12. zéro SQL au lieu de null
- 13. Pourquoi je reçois zéro?
- 14. Pourquoi FLT_MIN est-il égal à zéro?
- 15. SQL Null défini sur zéro pour ajouter
- 16. Pourquoi mon NSMutableArray revient-il à zéro?
- 17. Pourquoi cette division aboutit à zéro?
- 18. Zend Framework convertit la chaîne NULL en valeur NULL réelle pour MySql
- 19. liste déroulante avait la valeur zéro
- 20. mettre la valeur des autres champs de texte à zéro
- 21. Valeur NULL dans: conditions =>
- 22. WebView.getUrl() renvoie la valeur null
- 23. Pourquoi cette table mysql produit-elle une valeur NULL dans le champ datetime?
- 24. CacheManager.getCacheFileBaseDir() renvoie toujours la valeur null
- 25. sqlite SELECT AVG renvoie la valeur null
- 26. Comment recevoir zéro valeurs d'horodatage MySQL
- 27. Valeur décimale Vérifier si zéro
- 28. RegisterEventSource renvoie NULL, le code d'erreur est zéro
- 29. WPF pourquoi methodInfo = object.GetType(). GetMethod ("SelectionChanged") ..... renvoie une valeur null?
- 30. NHibernate + Impossible d'insérer la valeur NULL dans
Avez-vous une valeur par défaut dans cette colonne? –
Est-ce une colonne entière? Ne passez-vous pas une valeur du tout, ou vous * croyez * que la valeur est vide? –
@Martin, Il n'y a pas de défaut –