SQLite: не удается выбрать числовые столбцы со значениями> = 2 ^ 31 - PullRequest
0 голосов
/ 11 сентября 2018

Согласно документации SQLite , числовые столбцы могут хранить целые числа размером до 8 байт.Однако у меня возникают проблемы с выбором значений после их сохранения:

create table x (a integer, b integer, c integer);
insert into x values ('2147483647', '2147483647', '2147483647');
select * from x;

+------------+------------+------------+
| a          | b          | c          |
+------------+------------+------------+
| 2147483647 | 2147483647 | 2147483647 |
+------------+------------+------------+
1 row in set

insert into x values ('2147483648', '2147483649', '2147483648');
select * from x;

Ничего не происходит - строки не возвращаются

select count(1) from x;

+----------+
| count(1) |
+----------+
| 2        |
+----------+
1 row in set

select substr(a, 1, 5) from x;
+-----------------+
| substr(a, 1, 5) |
+-----------------+
| 21474           |
| 21474           |
+-----------------

Как получитьправильные фактические значения, сохраняя при этом целочисленный тип данных?(Изменение на REAL или TEXT работает, как и ожидалось, но другого выбора нет?)

Редактировать: я использовал Navicat для демонстрации выше, но также столкнулся с проблемой с моим фактическим приложением (используя узел-sqlite3 ).

...