Je dois autoriser la sauvegarde de null comme valeur entière sur le serveur mysql, comment puis-je faire cela?comment définir null comme valeur entière sur le serveur mysql?
Répondre
J'ai découvert comment: J'ai caché la ligne ci-dessous puis redémarré le serveur sql et cela a fonctionné.
# Définissez le mode SQL stricte sql-mode = "STRICT_TRANS_TABLES, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"
Notez cette ligne se trouve dans le fichier my.ini.
Veuillez noter que cela assouplit les contrôles d'intégrité pour l'ensemble du serveur et peut affecter d'autres applications. –
Définissez le champ à ne pas nul et définir sa valeur par défaut à zéro:
CREATE TABLE `t` (
`foo` BIGINT NOT NULL DEFAULT 0
);
Valeur de foo
sera égal à zéro si vous l'envoyez NULL.
non il y a un moyen qui change tout nul à zéro, sans avoir à le faire pour chaque table un par un. Cela fonctionne pour toutes les tables automatiquement. – Luci
@zeina, vous avez dit explicitement "lors de l'insertion ou la mise à jour de la table": -? –
oui le null devrait être converti en zéro tout en le faisant automatiquement à n'importe quelle table. – Luci
En supposant que votre question porte sur le message d'erreur "valeur entière incorrect" ...
mysql> CREATE TABLE `foo` (
-> `foo_id` INT(10) NOT NULL AUTO_INCREMENT,
-> `foo_size` INT(10) NOT NULL DEFAULT '0',
-> PRIMARY KEY (`foo_id`)
->) ENGINE=MyISAM;
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO foo (foo_size) VALUES ('');
ERROR 1366 (HY000): Incorrect integer value: '' for column 'foo_size' at row 1
... cela signifie que votre serveur est en cours d'exécution en mode strict (qui est en fait bien). Vous pouvez le désactiver:
mysql> SET @@session.sql_mode='';
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO foo (foo_size) VALUES ('');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> SHOW WARNINGS;
+---------+------+------------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------------+
| Warning | 1366 | Incorrect integer value: '' for column 'foo_size' at row 1 |
+---------+------+------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM foo;
+--------+----------+
| foo_id | foo_size |
+--------+----------+
| 1 | 0 |
+--------+----------+
1 row in set (0.00 sec)
... et votre erreur sera rétrogradée en avertissement.
Donc, de toute façon, les avertissements existent toujours? Même le '' peut être inséré comme 0 dans le tableau, est-ce correct? – zhihong
@zhihong - Désolé, je ne suis pas sûr de savoir quelle est votre question: -? –
@ Alvaro-je veux dire: Après avoir désactivé le mode strict, quand insérer la valeur '' à un type de données entier, bien que '0' soit inséré, il génère toujours les avertissements. Parce que mysql reconnaît encore le '' comme une chaîne vide, pas une valeur 0 entière. Je veux trouver un moyen de traiter le '' comme un entier, d'insérer 0 dans la table et de ne pas générer d'avertissement. Mais maintenant, ne pas avoir de chance. – zhihong
- 1. # 1366 - valeur entière incorrect: MYsql
- 2. Définir la valeur entière comme masque de bits
- 3. Comment définir NSMutableString sur null?
- 4. mysql - puis-je définir la valeur par défaut de VARCHAR comme NULL?
- 5. Django: Comment définir un champ sur NULL?
- 6. Comment définir un objet sur null
- 7. Comment faire pour définir correctement une valeur entière dans NSDictionary?
- 8. Richfaces a4j achtionparam définir la valeur null
- 9. Comment passer le paramètre MySQL null sur DbCommand Enterprise Library
- 10. MongoDB Regex Recherche sur une valeur entière
- 11. Comment définir DataAdapter.UpdateBatchSize sur une valeur "optimale"?
- 12. Comment définir dur dans le code une matrice entière [] []
- 13. mysql définir une valeur entière négative à un champ d'incrément auto primaire qui est int
- 14. Pourquoi dois-je définir explicitement le ItemsSource d'un ListView sur null avant de le définir à une nouvelle valeur?
- 15. Est-ce une bonne pratique de définir la valeur par défaut de certains champs/colonnes comme NULL dans MySQL?
- 16. Définir 1 colonne d'une requête MYSQL à Null
- 17. Comment faire pour passer null comme valeur DateTime?
- 18. Comment obtenir mysql gamme entière aléatoire?
- 19. Comment définir le serveur DNS alternatif?
- 20. Impossible de transmettre la valeur null au serveur à l'aide de jQuery AJAX. La valeur reçue sur le serveur est la chaîne "null"
- 21. Définir toutes les valeurs 0 sur NULL
- 22. Comment marquer une classe entière comme "Inconclusive"?
- 23. Comment récupérer une valeur entière d'un caractère?
- 24. chaîne Python à valeur entière
- 25. Comment supprimer l'erreur "Division par zéro" et définir le résultat sur null pour l'ensemble de l'application?
- 26. Comment définir une valeur double sur une "non-valeur"
- 27. MySQL - Définir la valeur par défaut pour le champ comme une fonction de concaténation de chaînes
- 28. Sharepoint DateTimeControl: définissez-le sur null
- 29. Comment définir une séquence comme valeur par défaut via pgAdmin?
- 30. comment convertir la valeur de nsarray en valeur entière
Pouvez-vous reformuler la question? Comme il est maintenant, cela n'a pas de sens ... –
Je pense que vous définissez les champs comme non nul, vous devez le déclarer comme accepter null –
bien si j'ai envoyé une valeur comme nulle ou '' il devrait être automatiquement converti à zéro lors de l'insertion ou la mise à jour de la table sur le serveur mysql. Je l'ai fait avant, mais j'ai complètement oublié comment. – Luci