2011-11-08 4 views
0

を繰り返した:私は、このテーブルを持っている:sqliteのいくつかの値を使用して新しい行を挿入が

id   |  name   |  chapter  | book 

1     hamlet     I    Hamlet 

2     Ismael     IV    Moby Dick 

を私は新しい値のために期待する動作は次のとおりです。=>の文字が存在する

同じ名前& &同じブック既存のものよりも、同じID:

2     Ismael     X    Moby Dick 

同じ名前& &異なるブック=>文字行います

3     Ismael     XX    The Bible  

私の質問は次のとおりです:esn'tはとてもidが変更存在

私は前に問い合わせを行い、新たな値を挿入し、新しい値を挿入する必要がありますか?

トリガーなどを設定して自動的に行う方法がありますか?

は、私はあなたが一意に識別するために許可するあなたの行の性質を隔離するためにそうすることの最もエレガントな方法があることだと思うTABLE文の

db.execSQL("CREATE TABLE characters (id INTEGER NOT NULL , 
    name TEXT NOT NULL , chapter TEXT NOT NULL , book TEXT NOT NULL);"); 
+0

こんにちは、私はCREATE TABLEステートメントを投稿していただけますか? – andreasg

+0

完了、それは実際にはとても簡単です – butelo

答えて

0

をCREATEマイ。たとえば、name + bookは行をユニークにし、オブジェクト内の1つの識別子にこれらの文字列を連結し、データベースに列を追加し、それにインデックスを付け、新しい要素を挿入するときにこのインデックスを検索することができます。

+0

そうですね。私は、ユニークな値に制約があるように、繰り返し値を管理する方法もあると仮定しました。だから私は尋ねるようにそれを行う方法はありません?ドキュメンテーションのためのものです。 – butelo

+0

私が間違っていない場合は、プライマリキーでペア(名前、ブック)を宣言することもできます。私は十分かもしれない。何かそのようなもの:http://stackoverflow.com/questions/734689/sqlite-primary-key-on-multiple-columns – Sephy

+0

実際には、同じ文字が表示されるため、(name、book、chapter)という3つの値が必要です同じ本の複数の章 – butelo

関連する問題