0

id=1 の場所で挿入と置換を実行しようとしています。これは、データベースに 1 つのエントリしか必要ないためです。したがって、ユーザーが値を入力すると、元の値が置き換えられますが、現時点ではそれを追加するだけです:

INSERT OR REPLACE INTO Animals(CAT) values ('Toby')"

正常に動作していますが、猫が 1 匹だけ欲しいです。私は試した

INSERT OR REPLACE INTO Animals(CAT) values ('Toby') WHERE ID='1'

ただし、機能しません。 Where ID=1 と Where ID="1" も試しました。

2 番目の猫を入力すると、既にそこにある猫を置き換えたいのですが、ID はテーブルの主キーです。

CREATE TABLE IF NOT EXISTS ANIMALS (ID INTEGER PRIMARY KEY AUTOINCREMENT, CAT VARCHAR)

それを行う最もクリーンな方法ではないので、提案を受け付けています

4

1 に答える 1

3

SQLite3 では、WHEREafterの使用はサポートされていませんINSERT OR REPLACE

ここに画像の説明を入力

UPDATEを使用するにはステートメントが必要だと思いますWHERE

データベースに1行だけ入れたい場合-これが私があなたの質問を解釈する方法です-SQLiteの代わりにNSUserDefaultsを使用する方が簡単かもしれません。

また、主キーと一意のインデックスを適切に設定してください。そうしないと、REPLACE何を交換すればよいかわかりません。

于 2013-06-24T18:50:38.730 に答える