Я хочу создать таблицу с типом столбца Long
вместо Integer
. Является ли это возможным?
Я хочу создать таблицу с типом столбца Long
вместо Integer
. Является ли это возможным?
Ответы:
INTEGER . Значение представляет собой целое число со знаком, хранящееся в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.
Поскольку long
это 8 байт, а INTEGER
также можно сохранять значения 8 байт, вы можете использовать INTEGER
.
int
, убедитесь, что вы используете его как можно дольше.
Создайте столбец как 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
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
Я не думаю, что это долго. Вы можете использовать INTEGER (или) Numeric. Вот ссылка с поддерживаемыми типами данных http://www.sqlite.org/datatype3.html
В приведенной выше ссылке изображено 64-битное целое число или, по сути, длинное, также см. В чем разница между целочисленными типами данных SQLite, такими как int, integer, bigint и т. Д.?
SQLIte установит подходящую целочисленную ширину в зависимости от вашего ввода
INTEGER может хранить долго , но , чтобы получить длинные от курсора должны сделать так:
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);
}
я использую это для хранения метки времени в sqlite