我使用了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?
---编辑---
似乎我使用了unsigned int的所有64位。是否有未签名的BIGINT类型?
答案 0 :(得分:1)
SQLite最大的数据类型是signed 64-bit integer, or floating-point。
如果要准确存储较大的数字,则必须将它们存储为字符串。
答案 1 :(得分:0)
或在进入sqlite时强制转换,并在读取时返回uint_64。这避免了sqlite转换为大型无符号数的浮点数。