2012-09-01 14 views
5

Ich versuche die INSERT OR REPLACE-Syntax in SQLite bisher ohne Erfolg, da keine Zeilen eingefügt werden.Android SQLite EINFÜGEN oder ERSETZEN

Mein Tabellenabfrage erstellen ist

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

Meine INSERT oder ersetzen Abfrage ist

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

Dank

+0

Warum Sie 'provider_id' Spalte erstellen, aber einfügen in' provider_channel_id 'Spalte? – Sieryuu

+0

provider_channel_id ist die Spalte, in der der Konflikt erkannt werden sollte, in Abfrage Spalten sind ziemlich außer Betrieb :) – TilalHusain

Antwort

4

Blick auf diesen Beitrag: (vorausgesetzt, Sie Sieryuu Kommentar bewertet haben)

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

Sie sollten in der Lage sein, nur eine Zeile zu ersetzen.

+3

Dies wies mich in die richtige Richtung, auch eine Sache ist, dass wir diese Abfragen mit ExecSQL-Methode anstelle von RawQuery ausführen müssen. – TilalHusain

+0

Mein Problem wurde auch mit der Methode execSQL() gelöst –

3

die Lösung, die ich .replace statt Beileger Sie sollten auch eine Reihe ID in der Tabelle haben und legen Sie es als PRIMARY KEY

bdd.replace(table,null, contentValues); 
Verwandte Themen