Ich möchte ein leeres Feld in einem MySQL Numeric Feld haben. Wenn ich das Feld so definiere, dass ein NULL-Wert zulässig ist, wird standardmäßig 0,00 verwendet. Manchmal bevorzuge ich für diesen Zeilenposten keinen Wert. Ich könnte wahrscheinlich eine andere Tabelle erstellen, um diese wenigen Elemente zu verfolgen, aber an dieser Stelle bevorzuge ich eine Ein-Tabellen-Lösung.Ist es möglich, ein leeres numerisches MySQL-Feld zu haben?
1
A
Antwort
1
Weil Sie dies mit DEFAULT
getan haben. Tun Sie das nicht:
create table t1
( id int auto_increment primary key,
thing varchar(100) not null,
anInt NUMERIC(5,2) NULL DEFAULT 0
);
insert t1(thing) values ('fish');
select * from t1;
+----+-------+-------+
| id | thing | anInt |
+----+-------+-------+
| 1 | fish | 0.00 |
+----+-------+-------+
1
Works für mich auf MySQL 5.7.12:
mysql> create table X (a double null);
Query OK, 0 rows affected (0.01 sec)
mysql> desc X;
+-------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| a | double | YES | | NULL | |
+-------+--------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> alter table X add column b int;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc X;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a | double | YES | | NULL | |
| b | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> insert into X (a) values (1.3);
Query OK, 1 row affected (0.00 sec)
mysql> insert into X (b) values (1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from X;
+------+------+
| a | b |
+------+------+
| 1.3 | NULL |
| NULL | 1 |
+------+------+
2 rows in set (0.00 sec)
+0
Beachten Sie, dass es so etwas wie MySQL 14.14 nicht gibt. Das klingt wie eine Client-Version, aber Clients sind im Allgemeinen abwärtskompatibel und manchmal vorwärtskompatibel. Die Serverversion wird mit der Abfrage 'SELECT @@ VERSION; 'gefunden. –
+0
Fest, danke .. – creativeChips
Verwandte Themen
- 1. Ist es in Ordnung, ein leeres Anker-Tag zu haben?
- 2. Ist es möglich, ein animiertes Zeichenfeld zu haben?
- 3. Ist es möglich, ein [OneTimeSetup] für ALLE Tests zu haben?
- 4. Ist es möglich, ein TextView ohne Tastatur zu haben?
- 5. pyqtgraph - Ist es möglich, ein ImageView ohne Histogramm zu haben?
- 6. Ist es möglich, ein privates/internes Docker-Repository zu haben?
- 7. Es ist möglich, ein Array ohne obere Grenze zu haben?
- 8. Ist es möglich, zu viele anonyme Delegierte zu haben?
- 9. Ist es möglich, mehrere loadChildrens im Router zu haben?
- 10. Latex - Ist es möglich, Text oben auf Bildern zu haben?
- 11. Ist es möglich, einen Datepicker ohne Jquery UI zu haben?
- 12. Python's PyQtGraph: Ist es möglich, einen geologischen Verlauf zu haben?
- 13. Ist es möglich, geschachtelte Array JSON zu haben?
- 14. Ist es möglich, mehr als eine Animation gleichzeitig zu haben?
- 15. Ist es möglich, externe Verbindung mit jquery Anruf zu haben?
- 16. Command-T: Ist es möglich projektspezifische Ignoriermuster zu haben?
- 17. Ist es möglich, zwei Passwortdateien in Apache2 zu haben?
- 18. Ist es möglich persistente persistente Daten mit AirConsole zu haben?
- 19. Ist es möglich, verschiedene Zeichensatz innerhalb derselben Datenbank zu haben?
- 20. YAML: Ist es möglich, eine Liste im Stammbereich zu haben?
- 21. Ist es möglich, in PyCharm statische Assertions zu haben?
- 22. Ist es möglich, einen Thread pro gdb-Instanz zu haben?
- 23. Ist es möglich, Validatoren mit Parametern zu haben?
- 24. Ist es möglich, mehrere Datenattribute {Name} in HTML5 zu haben?
- 25. Ist es möglich, zwei Schlüssel in derselben Klasse zu haben?
- 26. zumb foundation ist es möglich, volle Zeilenbreite zu haben
- 27. Ist es möglich, einen benutzerdefinierten NSWindowController beim Start zu haben?
- 28. Ist es möglich, einen Segmentierungsfehler von einer Referenz zu haben?
- 29. Wie ist es möglich, Deadlocks ohne Transaktionen zu haben?
- 30. Ist es möglich, mehrere simultane Tasteneingaben mit ProcessingJS zu haben?
Der richtige Ansatz ist 'NULL' zu verwenden. Das ist ganz anders als 0,00, also weiß ich nicht, warum ein 'NULL' auf einen legitimen Wert gesetzt wird. –
Mysql ist unwahrscheinlich, Null-Werte in eine Zahl zu konvertieren, es sei denn, es wird angewiesen, dies zu tun. Es ist jedoch möglich, dass Sie eine leere Zeichenfolge als Wert anstelle von Null übergeben, die in 0 konvertiert wird. – Shadow