2012-09-01 11 views
5

SQLiteでINSERT OR REPLACE構文を試していますが、行が挿入されていないためこれまで成功していません。Android SQLite INSERTまたはREPLACE

すると、テーブルのクエリを作成マイ

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

マイINSERT ORクエリを交換しているこの記事では

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

おかげ

+0

として設定したがprovider_channel_id'に挿入すべきです'列? – Sieryuu

+0

provider_channel_idは、競合が検出されるべき列です。クエリの列がかなり異常です。 – TilalHusain

答えて

4

ルックである:(あなたがSieryuuのコメントを検討していると仮定)

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

あなたは単に行を置き換えることができます。

+3

これは正しい方向に私を指摘しました。また、これらのクエリをrawQueryではなくexecSQLメソッドを使用して実行する必要があります。 – TilalHusain

+0

私の問題はexecSQL()メソッドを使って解決しました。 –

3

私が代わりにインサートの .replaceを発見したソリューション あなたはまた、テーブルの行IDを持っていて、 `provider_id`列を作成するのはなぜPRIMARY KEY

bdd.replace(table,null, contentValues); 
関連する問題