SQLite: не удается выбрать числовые столбцы со значениями>= 2^31

Согласно документации 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 для демонстрации выше, но также столкнулся с проблемой с моим фактическим приложением (используя node-sqlite3).

0 ответов

Другие вопросы по тегам