SQLite'da Long türü var mı?


126

Ben sütun türü içeren bir tablo oluşturmak istiyorum Longyerine Integer. Mümkün mü?

Yanıtlar:


220

Gönderen SQLite docs

TAM . Değer, değerin büyüklüğüne bağlı olarak 1, 2, 3, 4, 6 veya 8 baytta saklanan işaretli bir tamsayıdır.

Yana long8 bayt olduğunu ve INTEGERayrıca 8 bayt değerlerine tasarruf kullanabileceğiniz olabilir INTEGER.


1
1549251913000 girdisi ve SQLite'den alırken uyuşmazlık
Nanda Z

Lütfen yanlışlıkla döküm yapıp yazmadığınızı kontrol edin int, uzun süre kullandığınızdan emin olun.
Inder Kumar Rathore

20

Sütunu bir INTEGERtür olarak oluşturun :

db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
                + KEY + " INTEGER" + ")");

longDeğeri INTEGERsütuna koyun :

contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);

Önemli: imleçten değeri şu şekilde alınLONG

Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);


5

Tamsayı türünde bir sütun tanımlamanız yeterlidir. SQLite, girdinize bağlı olarak sütun uzunluğunu 1,2,4,8 olarak ayarlar.



3

SQLIte, girişinize bağlı olarak uygun tam sayı genişliğini ayarlayacaktır


0

INTEGER saklayabilirsiniz uzun ama uzun olsun imleç böyle yapmalıdır:

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);
}

i depolamak için bu kullanmak damgası içinde sqlite

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.