2013-07-01 2 views
3

Я использую SQLite 3.7.4 (в моем приложении C++ под Ubuntu PP), и когда я пытаюсь сохранить строку типа «000000», она сохраняет только один символ «0». Я тоже попробовал его в консоли - это функция, или ошибка? Как я могу избавиться от этого?SQLite не сохраняет строку из нулей

Например:

CREATE TABLE status (readTime INTEGER, status STRING); 
INSERT INTO status (readTime, status) values(1234, "000000"); 
INSERT INTO status (readTime, status) values(4321, "111111"); 
SELECT * FROM status; 
1234|0 
4321|111111 
+0

[Репро] (http://www.sqlfiddle.com/#!5/43014/1) –

+1

"СТРОКА" не является типом данных SQLite. Попробуйте «ТЕКСТ». –

+0

@HotLicks - Странно, работает ли SQLLite «угадать тип данных», если вы ввели недопустимый тип данных в схему или что-то еще? –

ответ

1

"СТРОКА" не является типом данных SQLite. Попробуйте «ТЕКСТ».

2

Некоторые быстрые исследования указывают на то, что STRING не является признанным типом SQLite (или, я считаю, большинством других диалектов SQL). Однако SQLite не является строгим с его типами, поэтому тип по умолчанию равен NUMERIC. Вы должны иметь возможность изменить тип столбца на TEXT, чтобы решить проблему.

Дальнейшее чтение: Type Affinity

+0

yup, вы правы, спасибо! – shmoula

+0

кажется, что у вас был ответ некоторое время назад в комментариях, я должен обновляться чаще) –

+0

yup, извините, что - я могу отметить только один ответ ;-) – shmoula