0

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を使用) でも問題が発生しました。

4

0 に答える 0