Есть ли тип Long в SQLite?

Я хочу создать таблицу с типом столбца Long вместо Integer. Является ли это возможным?

Ответ 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 в зависимости от вашего ввода.

Ответ 6

SQLIte установит подходящую ширину целого в зависимости от вашего ввода