ich eine Tabelle in MySQL alsMySQL-Bit-Werte exportieren DML Ausgabe
create table bittest (id int(11),constant bit(1) default b'0');
Dann erhalten gedruckt
insert into bittest(id) values (1);
Auswahlabfrage als
+------+----------+
| id | constant |
+------+----------+
| 1 | |
+------+----------+
1 row in set (0.00 sec)
Offensichtlich Wert der Konstanten geschaffen haben, ist nicht als Bit angezeigt.
Und wenn ich den Export mit mysqldump INSERT-Anweisung tun wird als
exportiertINSERT INTO `bittest2` VALUES (1,'\0');
, die Probleme verursacht, als ich keine Nullwerte eingefügt wollen.
Gibt es dafür eine Arbeit? MySQL Version 5.7.13
Mögliches Duplikat [Kann nicht Feldwert siehe MySQL BIT, wenn SELECT mit] (http://stackoverflow.com/questions/14248554/cant-see-mysql-bit-field- value-when-using-select) – Solarflare
Die Frage ist ähnlich, aber das löst das Exportproblem nicht. – rohitpal
'\ 0' ist nicht' null'. Ich bin nicht sicher, warum die verknüpfte Frage Ihre Frage nicht beantwortet, aber 'b'0' ist das gleiche wie' \ 0' (alle Bits in '\ 0' sind 0, es sind einfach nicht 8 Bits wie gewöhnlich Denken Sie daran, wenn Sie '\ 0' sehen. Ein Bit ist keine Ganzzahl, und wenn Sie es (mit Ihrer 'Einfügung') erneut importieren, funktioniert es gut.Es würde tatsächlich auch mit 0 funktionieren, weil es es richtig umwandeln wird, aber Bits sind einfach keine ganzen Zahlen. Wenn Sie eine ganze Zahl haben wollen, verwenden Sie eine, z.B. 'Tinyint (1)', oder sein Synonym 'bool'. (mysql verwendete früher "tinyint" für "bit" einige Versionen, änderte es jedoch, um mehr standardkonform zu sein). – Solarflare