Я на правильном пути?
Возможно, на ненужном треке, поскольку текст на самом деле сохраняется в UTF-8 (как правило) и в UTF-16(если соединение открывается через подпрограмму sqlite3_open16).Обычно используется UTF-8.
Возможно, рассмотрим следующее: -
DROP TABLE IF EXISTS পরীক্ষা ;
CREATE TABLE IF NOT EXISTS পরীক্ষা (name TEXT, altname1 BLOB, altname2 REAL, altname3 VARCHAR(20), altname4 CHARVAR(-20));
INSERT INTO পরীক্ষা VALUES('Test','ტესტი','thử nghiệm',' テスト','ටෙස්ට්');
SELECT * FROM পরীক্ষা;
Здесь все значения и имя таблицы являются словом Test на разных языках.Выше работает и результат выбора: -
Вы можете спросить, почему не сохранить нечисловое какДЕЙСТВИТЕЛЬНО не сбой, или как вы можете иметь отрицательное количество символов в соответствии с CHARVAR (-20).
SQlite в отношении столбцов и типов данных не является типичным.В столбцах SQlite типы являются только указанием типа данных.В SQLite вы можете хранить данные любого типа в любом типе столбца (как показано выше).
Фактически существует только 5 типов столбцов (сходство типов - это термин SQlite): -
- INTEGER
- REAL
- TEXT
- BLOB
- NUMERIC
Любой другой приемлемый термин, например:преобразуется в один из вышеперечисленных
в соответствии с комментарием
PRIMARY KEY, а не PRIMARY_KEY
Вы кодировали INTEGER PRIMARY_KEY и сказали: -
Хотя Python не жаловался
Вышеуказанное было принято за тип: INTEGER PRIMARY_KEY
Правила преобразования (применяются в указанном порядке)
- Если тип включает INT , затем сходство INTEGER (поэтому INTEGER PRIMARY_KEY имеет сходство INTEGER, как и PRIMARY_KEY INTEGER)
- Если тип включает CHAR , TEXT или CLOB , тогда сходство TEXT (следовательно, VARCHAR (20) и CHARVAR (-20) имеют сходство типов TEXT.
- Если тип включает BLOB сходство BLOB.
- Если тип включает REAL , FLOA или DOUB , тогда REAL affinity.
- В противном случае NUMERIC affinity.
Если бы для определения столбца использовалось следующее テスト テスト
(да, это работает), тогда сходство было бы ЧИСЛО, так как имя столбца テスト
, а тип - вторая часть テスト
, котораяпадает до 5. Иначе NUMERIC.