2011-03-03 17 views
6

Sé que si no utilizo un campo llamado _id como mi clave principal en Android, que ciertas cosas como CursorAdapter no funcionarán, pero ¿la columna _id necesita ser unincincipioinc? ¿Podría usar un Guid como clave, siempre que se llame _id, y que el CursorAdapter aún funcione?Android: Clave principal GUID

Respuesta

3

La caja amarilla en el storage guide dice:

Android no impone ninguna limitación más allá de la norma SQLite conceptos. Recomendamos que se incluya un campo de clave de valor de autoincremento que se puede usar como ID exclusivo para encontrar rápidamente un registro en . Esto no es obligatorio para los datos privados , pero si implementa un proveedor de contenido , debe incluir una identificación única utilizando la constante BaseColumns._ID .

Ahora, cuando se hace clic en la clase BaseColumns verá

public static final String _ID

El identificador único para una fila.

Tipo: entero (largo)

Valor fijo: "_id"

así que supongo, un GUID no funcionará.

+1

Eso es muy malo. :(Me hubiera gustado utilizar los mismos valores UUID entre datos sincronizados locales y remotos. –

+2

@JRLawhorne: Nada le impide almacenar el UUID como un campo adicional (no denominado '_ID'). Una tabla puede tener más de un único llave. – Heinzi

Cuestiones relacionadas