Quiero crear una tabla con el tipo de columna en Long
lugar de Integer
. ¿Es posible?
Quiero crear una tabla con el tipo de columna en Long
lugar de Integer
. ¿Es posible?
Respuestas:
De los documentos de SQLite
INTEGER . El valor es un entero con signo, almacenado en 1, 2, 3, 4, 6 u 8 bytes, dependiendo de la magnitud del valor.
Como long
es de 8 bytes y INTEGER
también puede guardar valores de 8 bytes, puede usar INTEGER
.
int
, asegúrate de usarlo durante mucho tiempo.
Cree la columna como un INTEGER
tipo:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
Pon el long
valor en la INTEGER
columna:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
Importante: recupere el valor del cursor comoLONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
No creo que haya tipo largo. Puede usar INTEGER (o) Numeric. Aquí hay un enlace con los tipos de datos compatibles http://www.sqlite.org/datatype3.html
Su enlace de arriba muestra un entero de 64 bits o esencialmente un largo, también vea ¿Cuál es la diferencia entre los tipos de datos enteros de SQLite como int, integer, bigint, etc.?
SQLIte establecerá un ancho entero adecuado dependiendo de su entrada
del INTEGER puede almacenar el tiempo , pero para obtener larga del cursor debe hacer como esto:
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);
}
lo uso para almacenar la marca de tiempo en sqlite