2

我在我的 BIGINT 中使用了所有 64 位,并且遇到了将值存储在 sqlite3 db 中的问题。这些值似乎存储得很好,我可以使用原始值来更新记录,但我无法使用 sqlite3_exec 或命令行 sqlite3 获取这些值。

例如:

sqlite> create table mytable (bigval BIGINT, test INT);
sqlite> insert into mytable (bigval, test) values (16791083265364386151, 1);
sqlite> update mytable set test=2 where bigval=16791083265364386151;
sqlite> select * from mytable;
1.67910832653644e+19|2

如何强制mysql输出整个int?

- - 编辑 - -

看来我正在使用无符号整数的所有 64 位。有无符号的 BIGINT 类型吗?

4

2 回答 2

2

SQLite 最大的数据类型是有符号的 64 位整数或浮点数

如果要精确存储更大的数字,则必须将它们存储为字符串。

于 2013-08-15T15:16:44.240 回答
0

或在戳入 sqlite 时转换为 long,并在阅读时返回 uint_64。这避免了 sqlite 将大型无符号数转换为浮点数。

于 2017-06-16T17:03:20.870 回答