Я хочу создать таблицу с типом столбца Long
вместо Integer
. Является ли это возможным?
Есть ли тип Long в SQLite?
Ответ 1
Из SQLite docs
INTEGER. Значение представляет собой целое число со знаком, сохраненное в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.
Так как long
равно 8 байтам, а INTEGER
также может сохранять значения 8 байтов, вы можете использовать INTEGER
.
Ответ 2
Я не думаю, что существует длинный тип. Вы можете использовать INTEGER (или) Numeric. Вот ссылка на поддерживаемые типы данных http://www.sqlite.org/datatype3.html
Ответ 3
Создайте столбец как тип 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);
Ответ 4
Вы просто определяете столбец с типом Integer. SQLite устанавливает длину столбца в 1,2,4,8 в зависимости от вашего ввода.
Ответ 5
В приведенной выше ссылке изображено 64-битное целое число или по существу длинное, также см. В чем разница между целыми типами данных SQLite, такими как int, integer, bigint и т.д.?
Ответ 6
SQLIte установит подходящую ширину целого в зависимости от вашего ввода