SQLカーソルを使用するカスタムアダプタでリストビューを使用しています。私のリストビューにアイテムを追加すると、そのアイテムは自分のsqlite3データベースに追加され、リストビューが更新されます。AndroidのSQLite3のプライマリキーを適用する問題
私の1つの問題は、重複した項目を追加することができ、アプリケーションで重複を追加できるようにしたくないということです。
私のデータベース(itemNumber)にプライマリキーを追加しましたが、データベースはこれを強制していないようです。ここで私は自分のデータベースを作成する方法である:私は1は私のリストビューにitemNumberを複製するよりも多くを追加することができるよ、なぜ
private static final String DB_CREATE_MASTER = "CREATE TABLE "
+ "MyTable"
+ " (_id INTEGER, itemNumber TEXT,"
+ "itemPlace TEXT," + "itemTimeTEXT,"
+ "itemCode INTEGER,"
+ "dbdatestamp TEXT" + "PRIMARY KEY(itemNumber)" +");";
誰でも知っていますか?
ありがとうございます!
EDIT:
private static final String DB_CREATE_MASTER = "CREATE TABLE "
+ "MyTable"
+ " (_id INTEGER PRIMARY KEY, itemNumber TEXT,"
+ "itemPlace TEXT," + "itemTimeTEXT,"
+ "itemCode INTEGER,"
+ "dbdatestamp TEXT" + "UNIQUE(itemNumber)" +");";
EDIT:
これは私がデータベースにitemNumberを追加する方法です:
values.put("itemNumber", myClass.itemNumber);
values.put("itemName", myClass.itemName);
values.put("itemTime", myClass.itemTime);
values.put("dbdatestamp", "03/01/1960 08:55");
this.db.insert(MY_TABLE, null, values);
申し訳ありませんが、投稿コードの主キーに_idを含めることを意味しませんでした。 _idをプライマリキーとして削除すると、重複する値を追加できます。または、アイテム番号を一意にすると...上の更新を参照してください。 – littleK
アイテム番号はどのように生成しますか?重複していることは確かですか? – pablochan
数値はWebサービスから返されます。上の2番目の編集を見ると、データベースに番号を追加する方法がわかります。上記のメソッドでは、itemNumberが何であるかを示すprintステートメントを追加して、それらが重複していることを100%示しています... – littleK