2012-09-01 18 views
5

Estoy intentando la sintaxis INSERTAR O REEMPLAZAR en SQLite sin éxito hasta el momento porque no se insertan filas.Android SQLite INSERT o REPLACE

mis Crear consulta de tabla es

create table providers (provider_id text not null, provider_name text not null, provider_channel_id text not null, channel_name text not null);CREATE UNIQUE INDEX channel_id ON providers (provider_channel_id); 

Mi insertar o cambiar la consulta es

INSERT OR REPLACE INTO providers (provider_channel_id, channel_name, provider_id, provider_name) VALUES ('1', '2', '3', '4') 

Gracias

+0

¿Por qué se crea columna 'provider_id' pero insertar en' provider_channel_id 'columna? – Sieryuu

+0

provider_channel_id es la columna en la que debe detectarse el conflicto, en las columnas de consulta están bastante fuera de servicio :) – TilalHusain

Respuesta

4

mirada a este post: (suponiendo que haya revisado el comentario de Sieryuu)

How do I UPDATE a row in a table or INSERT it if it doesn't exist?

debería poder simplemente reemplazar una fila.

+3

Esto me apuntó en la dirección correcta, también una cosa es que tenemos que ejecutar estas consultas utilizando el método execSQL en lugar de rawQuery. – TilalHusain

+0

mi problema también se resolvió usando el método execSQL() –

3

la solución que he encontrado .replace lugar de inserción también debe tener un identificador de fila de la tabla y configurarlo como PRIMARY KEY

bdd.replace(table,null, contentValues); 
Cuestiones relacionadas