Je veux créer une table avec le type de colonne Long
au lieu de Integer
. C'est possible?
De la documentation SQLite
[~ # ~] entier [~ # ~] . La valeur est un entier signé, stocké dans 1, 2, 3, 4, 6 ou 8 octets selon la magnitude de la valeur.
Puisque long
a 8 octets et que INTEGER
peut également enregistrer des valeurs de 8 octets, vous pouvez utiliser INTEGER
.
Créez la colonne en tant que type INTEGER
:
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
Mettez la valeur long
dans la colonne INTEGER
:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
Important: Récupérer la valeur du curseur sous la forme LONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
Je ne pense pas que le type soit long. Vous pouvez utiliser INTEGER (ou) Numeric. Voici un lien avec les types de données supportés http://www.sqlite.org/datatype3.html
Vous venez de définir une colonne de type Integer. SQLite définit la longueur de la colonne à 1,2,4,8 en fonction de votre saisie.
Son lien ci-dessus représente un entier 64 bits ou essentiellement un long. Voir aussi Quelle est la différence entre les types de données entiers SQLite tels que int, integer, bigint, etc. ??
SQLIte définira une largeur entière appropriée en fonction de votre saisie