SQLITE INSERT con ID manual (clave principal)

¿Puedo insertar en una base de datos SQLITE utilizando el método db.insert con el valor de ID manual [PRIMARY KEY AUTO INCREMENT]? O tengo que hacerlo con el método rawQuery con el comando SQL?

mylibman ... // Is a custom class containing all values SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); //values.put(KEY_ID, mylibman.getBookid()); //If I put this line, ID always becomes zero values.put(KEY_NAME, mylibman.getBookname()); values.put(KEY_PRINT_NAME, mylibman.getPrintname()); long numrow = db.insert(TABLE_NAME, null, values); db.close(); 

Gracias,

Sí, puede definir explícitamente el valor para una columna INTEGER PRIMARY KEY AUTOINCREMENT . Si intenta volver a insertar una clave existente, obtendrá "PRIMARY KEY debe ser único" error.

La generación automática rowid sólo tiene lugar si el valor de la columna no se da o se da como NULL .

Referencia: http://www.sqlite.org/autoinc.html

  • ¿Cómo puedo actualizar un valor de columna de la base de datos android sqlite a null usando ContentValues?
  • ¿Es posible crear una tabla sqlite en tiempo de ejecución basada en el número de elementos en matriz
  • Cómo evitar errores de bloqueo de SQLiteException
  • Empaquetado DB de SQLite con mi aplicación
  • Cómo reducir la base de datos sqlite?
  • No se pudo recuperar datos de la base de datos a listview.
  • La base de datos SQLite no funciona en Android 4.4
  • Leer sólo la actualización de la base de datos SQLite en la carpeta de activos para la nueva versión de la aplicación
  • Android Lollipop - comportamiento cambiado de SQLite
  • Seleccione un primer carácter distinto basado en la columna de cadena
  • Cómo superar el límite de 65535 bytes para el código de método
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.