Ben sütun türü içeren bir tablo oluşturmak istiyorum Long
yerine Integer
. Mümkün mü?
Ben sütun türü içeren bir tablo oluşturmak istiyorum Long
yerine Integer
. Mümkün mü?
Yanıtlar:
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 long
8 bayt olduğunu ve INTEGER
ayrıca 8 bayt değerlerine tasarruf kullanabileceğiniz olabilir INTEGER
.
int
, uzun süre kullandığınızdan emin olun.
Sütunu bir INTEGER
tür olarak oluşturun :
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
long
Değeri INTEGER
sü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);
Uzun bir tip olduğunu sanmıyorum. INTEGER (veya) Numeric'i kullanabilirsiniz. Desteklenen veri türleri http://www.sqlite.org/datatype3.html ile bağlantı burada
Yukarıdaki bağlantısı bir 64 bit Tamsayı veya Esasen bir uzun tasvir ediyor, ayrıca bkz. İnt, tamsayı, bigint gibi SQLite tamsayı veri türleri arasındaki fark nedir?
SQLIte, girişinize bağlı olarak uygun tam sayı genişliğini ayarlayacaktır
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