Tengo una tabla simple. Estoy tratando de poner un valor por defecto para una columna de TEXTO. Aquí está la tabla de consulta:

"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT '0', book_name TEXT NOT NULL);"   

Se crea la tabla, pero el problema se produce cuando se intenta insertar datos. Yo sólo estaba tratando de dar con un libro de nombre a book_name, como yo esperaba que el book_id tendría un valor predeterminado de 0 a la columna. Pero no y se le añade el valor nulo, por lo que la fila no se introducen. También he probado con esta consulta:

"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT \'0\', book_name TEXT NOT NULL);"     

Pero el problema sigue siendo el mismo. He buscado por el desbordamiento de la pila, y obtuve algunas respuestas, pero son viejos y no trabajo para mí en este momento. Así ha cambiado algo acerca de cómo establecer el valor predeterminado de una columna de TEXTO en sqlite. Gracias de antemano 🙂

EDITAR

Aquí está la instrucción insert:

database.insert("book", null, cv);    

Aquí cv es el objeto de ContentValues que contiene sólo el valor de la columna book_name.

¿Cuál fue su instrucción INSERT?
Se va a crear la tabla en el método oncreate de SQLiteOpenHelper?
Y por favor, indicar el código de cómo se insertan los datos en la tabla
Actualizado mi pregunta. Y sí, yo soy la creación de la tabla en onCreate. Tabla creada sin ningún problema. también he revisado la base de datos con sqlite browser. Principal problema es cómo establecer el valor predeterminado de la columna de TEXTO.
Usted no necesita para escapar de los apóstrofos.

OriginalEl autor Abir Hasan | 2016-01-21

2 Comentarios

  1. 14

    Puede especificar un valor predeterminado de la columna cuando se crea la tabla. (No parece como si usted puede agregar un valor predeterminado utilizando un ALTERAR declaración, por lo que deberás volver a crear tu mesa.)

    CREATE TABLE your_table_name
    (MainContactName TEXT NOT NULL DEFAULT '')

    Para Ejemplo,

    CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT,book TEXT DEFAULT "abc");

    ver ahora que , valor predeterminado se establece en “abc”

    De verificación sqllite documentación.

    Si puedo crear la columna sin NOT NULL entonces no tome la cadena vacía como valor predeterminado o el ‘abc’ como dado. toma el valor null. He visto la mayoría de las respuestas anteriores, pero ninguno de ellos están trabajando.
    desea establecer el valor de la columna ‘algo’ a la derecha por defecto ? a la derecha ? entonces esto funciona @AbirHasan
    no lo has probado? la causa no está funcionando. @Amit
    sí , mire mi editada respuesta @AbirHasan
    CREAR TABLA de libro(_id INTEGER PRIMARY KEY AUTOINCREMENT,libro de TEXTO PREDETERMINADO “abc”); he probado esta solución y se está trabajando en @AbirHasan

    OriginalEl autor Amit Vaghela

  2. 0

    A alter table,

    sqlitedbInstance.execSQL("alter table myTable add column Address TEXT DEFAULT 'ABC' ");

    OriginalEl autor LincyTonita

Dejar respuesta

Please enter your comment!
Please enter your name here