2012-09-01 18 views
5

Sto provando la sintassi INSERT O REPLACE in SQLite senza esito fino a questo momento perché non sono state inserite righe.SQLite Android INSERISCI o SOSTITUI

Il mio Creare query di tabella è

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); 

mio inserire o sostituire query è

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

Grazie

+0

Perché si crea 'colonna provider_id' ma inserire nella' provider_channel_id 'colonna? – Sieryuu

+0

provider_channel_id è la colonna su cui deve essere rilevato il conflitto, nelle colonne di query sono piuttosto fuori ordine :) – TilalHusain

risposta

4

un'occhiata a questo post: (supponendo di aver esaminato il commento di Sieryuu)

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

dovresti essere in grado di sostituire solo una riga.

+3

Questo mi ha indirizzato nella giusta direzione, anche una cosa è che dobbiamo eseguire queste query utilizzando il metodo execSQL piuttosto che rawQuery. – TilalHusain

+0

il mio problema è stato risolto anche utilizzando il metodo execSQL() –

3

la soluzione che ho trovato .Rimontare invece di inserto si dovrebbe anche avere un id riga della tabella e impostarlo come PRIMARY KEY

bdd.replace(table,null, contentValues);