web-dev-qa-db-fra.com

Existe-t-il un type Long dans SQLite?

Je veux créer une table avec le type de colonne Long au lieu de Integer. C'est possible?

116
Alex Kapustian

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.

208
Inder Kumar Rathore

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);
18
Vasil Valchev

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

14
kosa

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.

5
Shnkc
4
L7ColWinters

SQLIte définira une largeur entière appropriée en fonction de votre saisie

3
DarkTemple