2017-01-17 4 views
1

Ich weiß nicht, wie die in sqlite3 definierte boolesche Datentypspalte in der Lage ist, Textdaten zu speichern.sqlite3 Boolesches Feld Speichern von Textwerten

Ich tat dies:

CREATE TABLE `sometable` (
    `name` text, 
    `bool_field` boolean 
); 

und lief die unter Einsatz Abfrage:

insert into `sometable` values ('name1','something'); 

und es funktionierte wie ein Zauber, ohne einen Fehler zu werfen. Ich bin überrascht - Leute keine Ahnung warum? Ich weiß über die Assoziation von booleschen Feld in sqlite3 ist mit numerischen 1 und 0. aber wie kommt Text hier gespeichert?

Version Info:

SQLite Version 3.9.2

Client verwendet "DB-Browser für SQLite" genannt für Ubuntu Version 3.7.0 (gebaut auf Qt-Version 5.5.1)

+0

Dank GurV für den Code bearbeiten :) – Dhwanit

+0

Was passiert, wenn man andere String-Werte einzufügen, und wenn Sie aus der Tabelle zu wählen? – jarlh

+0

Ich habe versucht mit: select * from someable; und es hat funktioniert Sogar versucht mit: "einfügen in' someable "Werte ('name1', 'etwas wirklich riesiges');" und es funktioniert trotzdem – Dhwanit

Antwort

-1

SQLite hat keine Speicherklasse zum Speichern von Daten und/oder Zeiten. Stattdessen können die integrierten Datums- und Uhrzeitfunktionen von SQLite Daten und Zeiten als TEXT-, REAL- oder INTEGER-Werte speichern:

TEXT als ISO8601-Zeichenfolgen ("JJJJ-MM-TT HH: MM: SS.SSS "). REAL wie Julian Tag Zahlen, die Anzahl der Tage seit Mittag in Greenwich am 24. November, 4714 B.C. nach dem proleptischen Gregorianischen Kalender. INTEGER als Unix-Zeit, die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC. Anwendungen können Datum und Uhrzeit in einem dieser Formate speichern und mithilfe der integrierten Datums- und Uhrzeitfunktionen frei zwischen den Formaten konvertieren.

Info

+0

Ich bin mehr interessiert an Boolean ... warum sqlite3 mehr Bytes zuweisen und falsch speichern einen Text in Bool-Typ-Feld, wenn es mit einer Speicherklasse INTEGER kann - vorausgesetzt, Integer dauert 8 Bytes (nur um eine 1 oder 0 zu speichern) auch für Bool reicht das - aber wie kommt TEXT mit höheren Speichergrenzen ??? – Dhwanit

+0

Kopieren von Text ohne Zuordnung ist illegal. –

Verwandte Themen