2012-09-01 3 views
5

행이 삽입되지 않았으므로 SQLite에서 INSERT OR REPLACE 구문을 지금까지 시도하지 않았습니다. 테이블 쿼리를 만들고 내안드로이드 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);