我有一个带有INTEGER PRIMARY KEY的表。这意味着,我的主键成为了rowid的别名。但是rowid很长(根据SQLiteDatabase.insert
的返回值),而我的主键是整数。那么,如果我在该表中使用所有可能的整数值的时间插入数据,会发生什么情况?因为我的主键是整数,所以我会期望一个错误。但是由于我的主键refers to / is an alias for的rowid(这是一个很长的->仍然可用的数字),SQLiteDatabase.insert
可以继续插入我的数据,返回rowid ...对吗?还是SQLiteDatabase.insert
限制自己为整数值范围,但每次仍然返回很长?如果是这样,立即将SQLiteDatabase.insert
的返回值转换为int是没有道理的吗?因为无论如何我都无法从该方法获得“长值”(由于我的主键整数)...还是可以?
答案 0 :(得分:1)
来自:https://www.sqlite.org/datatype3.html
INTEGER。该值是一个有符号整数,存储在1、2、3、4、6或8中 字节取决于值的大小
正如您在 SQLite 中看到的那样,INTEGER
数据类型不是Java中int
的数据类型,
但它最多可以存储 8个字节的值,就像Java long
类型一样。