Я хочу створити таблицю з типом стовпця Longзамість Integer. Це можливо?
Я хочу створити таблицю з типом стовпця Longзамість 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