我想创建一个列类型为 Long而不是 Integer的表。这可能吗?
Long
Integer
我不认为有长的类型。可以使用 INTEGER (或) Numeric。下面是支持的数据类型 http://www.sqlite.org/datatype3.html的链接
他上面的链接描绘了一个64位整数或本质上是一个长的,也可以看 SQLite 整数数据类型之间的区别是什么?
在 Android 中使用的 SQLite 版本?
您只需定义一个 Integer 类型的列。 SQLite 根据您的输入将列长度设置为1、2、4、8。
来自 SQLite 文档
INTEGER .该值是一个有符号整数,根据值的大小以1、2、3、4、6或8字节的形式存储。
因为 long是8字节,而且 INTEGER也可以保存8字节的值,所以可以使用 INTEGER。
long
INTEGER
SQLite 将根据您的输入设置合适的整数宽度
将列创建为 INTEGER类型:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "(" + KEY + " INTEGER" + ")");
将 long值放入 INTEGER列:
contentValues.put(KEY, object.getLongValue()); db.insert(TABLE_A, null, contentValues);
重要提示: 从光标中检索值作为 LONG
LONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null); long value = cursor.getLong(0);
整数可以存储 很长,但是要从 光标获得长度,应该这样做:
int type = cursor.getType(j); String value = cursor.getString(j); try { int intValue = Integer.parseInt(value); field.set(object, intValue); } catch (NumberFormatException e) { long longValue = Long.parseLong(value); field.set(object, longValue); }
我用这个在 斯克莱特中存储 时间戳