tipos que long datos acepta android sqlite android-sqlite

que - Cómo agregar una columna booleana en Android SQlite



tipos de datos que acepta sqlite (5)

He creado una tabla para mi ContentProvider usando la siguiente línea:

static final String CREATE_DB_TABLE = " CREATE TABLE " + CONTACTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " + " pid TEXT NOT NULL, " + " name TEXT NOT NULL,"+ "number TEXT NOT NULL);";

Tiene 4 columnas. Ahora quiero agregar una columna con un valor booleano de verdadero / falso. ¿Cómo puedo agregar anexar / cambiar esta declaración si tengo que agregar una columna booleana llamada "estado" ?


Como lo mencionó MD,

SQLite no tiene una clase de almacenamiento booleana separada. En su lugar, los valores booleanos se almacenan como números enteros 0 (falso) y 1 (verdadero).

Utilice la siguiente instrucción ALTER -

ALTER TABLE CREATE_DB_TABLE ADD status boolean NOT NULL default 0;

Luego puede usar el Cursor para obtener el valor requerido y luego convertirlo en booleano real -

flag=cursor.getString(0).equals("1")

Puede utilizar esta bandera para mostrar en la pantalla de usuario.

Referencia: sqlite.org/datatype3.html


Podrías usar algo como esto:

Crea tu tabla:

static final String CREATE_DB_TABLE = "CREATE TABLE " + CONTACTS_TABLE_NAME " + " (_id INTEGER PRIMARY KEY AUTOINCREMENT," + "..." + " flag INTEGER DEFAULT 0)";

recupera tu valor como:

Boolean flag = (cursor.getInt(cursor.getColumnIndex("flag")) == 1);


Sqlite no proporciona ninguna clase para almacenar valores booleanos.

Puedes usar 0 para false y 1 para true . Luego tendrá que convertir estos valores después de recuperarlos de su base de datos.


desafortunadamente, el sqlite de Android no es compatible con el tipo booleano y debes usar Integer en lugar de él


public enum Status{ TRUE,FALSE; } static final String CREATE_DB_TABLE = " CREATE TABLE " + CONTACTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +...... " booleanColumn INTEGER DEFAULT 0);";

// mientras inserta

pasar los valores de Status.TRUE.ordinal () a la base de datos y

// mientras se recupera

verificación cruzada con el valor ordinal para el estado