Chcę utworzyć tabelę z typem kolumny Long
zamiast Integer
. Czy to możliwe?
Chcę utworzyć tabelę z typem kolumny Long
zamiast Integer
. Czy to możliwe?
Odpowiedzi:
INTEGER . Wartość jest liczbą całkowitą ze znakiem, przechowywaną w 1, 2, 3, 4, 6 lub 8 bajtach, w zależności od wielkości wartości.
Ponieważ long
ma 8 bajtów i INTEGER
może również zapisywać wartości 8 bajtów, możesz użyć INTEGER
.
int
, upewnij się, że używasz go przez długi czas.
Utwórz kolumnę jako INTEGER
typ:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
Wpisz long
wartość w INTEGER
kolumnie:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
Ważne: pobierz wartość z kursora jakoLONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
Myślę, że nie ma długich typów. Możesz użyć funkcji INTEGER (lub) Numeric. Oto link do obsługiwanych typów danych http://www.sqlite.org/datatype3.html
Powyższe łącze przedstawia 64-bitową liczbę całkowitą lub zasadniczo długą. Zobacz też Jaka jest różnica między typami danych typu integer SQLite, takimi jak int, integer, bigint itp.?
SQLIte ustawi odpowiednią szerokość całkowitą w zależności od danych wejściowych
INTEGER można przechowywać długo, ale aby dostać się długo z kursorem należy zrobić tak:
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);
}
Używam tego do przechowywania znacznika czasu w sqlite