У меня странная проблема.Я определил столбец в базе данных SQLite как STRING
, но когда я использую его с целыми числами с префиксом +
, он автоматически преобразует их в правильное целое число:
sqlite> create table test (key STRING);
sqlite> insert into test values ('+1');
sqlite> insert into test values ("+2");
sqlite> select * from test;
1
2
Как вы можете видеть +
знак удален.С другой стороны, если я цитирую строки дважды :
sqlite> delete from test;
sqlite> insert into test values ('"+3"');
sqlite> insert into test values ("'+4'");
"+3"
'+4'
... это работает, как ожидалось, но они заключаются в кавычки.Моя основная проблема заключается в том, что мне нужно «заключить в кавычки» все строки, потому что Я не могу гарантировать, что какая-то строка будет выглядеть как целое число в базе данных и, следовательно, будет изменена на .
Вот чтоЯ хотел бы знать:
- Почему SQLite ведет себя так (и, возможно, другие реализации)?
- Могу ли я что-нибудь с этим сделать?(Без двойных кавычек?)
Просто для справки, вставка строки '+test'
работает как положено:
sqlite> delete from test;
sqlite> insert into test values ('+t');
sqlite> select * from test;
+t
(ответ без кавычек -whiii!)