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

78

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

Теги:

6 ответов

158

Из SQLite docs

INTEGER. Значение представляет собой целое число со знаком, сохраненное в 1, 2, 3, 4, 6 или 8 байтах в зависимости от величины значения.

Так как long равно 8 байтам, а INTEGER также может сохранять значения 8 байтов, вы можете использовать INTEGER.

  • 0
    я ввожу 1549251913000 и несоответствие при получении из SQLite
  • 0
    Пожалуйста, проверьте, правильно ли вы вводите его в int , убедитесь, что вы используете долго.
13

Я не думаю, что существует длинный тип. Вы можете использовать INTEGER (или) Numeric. Вот ссылка на поддерживаемые типы данных http://www.sqlite.org/datatype3.html

11

Создайте столбец как тип 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 в зависимости от вашего ввода.

3

В приведенной выше ссылке изображено 64-битное целое число или по существу длинное, также см. В чем разница между целыми типами данных SQLite, такими как int, integer, bigint и т.д.?

и Версия SQLite, используемая в Android?

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню