Есть ли тип Long в SQLite? - PullRequest
       15

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

113 голосов
/ 29 декабря 2011

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

Ответы [ 6 ]

205 голосов
/ 01 февраля 2014

Из документов SQLite

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

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

18 голосов
/ 22 августа 2016

Создайте столбец как 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);
14 голосов
/ 29 декабря 2011

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

5 голосов
/ 06 мая 2013

Вы просто определяете столбец с целочисленным типом.SQLite устанавливает длину столбца в 1,2,4,8 в зависимости от вашего ввода.

4 голосов
/ 29 декабря 2011

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

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

3 голосов
/ 19 апреля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...