sqliteデータベースのユーザーから情報を取得しています。 しかし、すでにデータベースに入っている同じレコードを挿入すると、再び追加されます。 どのように私はsqliteのレコードの重複を停止することができます。私はアンドロイドでこれを開発しています。 私は主キーとして携帯番号を使用しています。それでもそのレコードをデータベースに追加します。 私に適切な解決策を提案してください。 ありがとうございました。android appを使用したsqliteのデータ複製
-1
A
答えて
0
テーブルを作成した時点で電話番号をプライマリキーに設定していることを確認してください。例えば
:
String query = "CREATE TABLE IF NOT EXISTS PhoneBook ("+
"TelNum VARCHAR(100) PRIMARY KEY NOT NULL,"+
"Address TEXT);";
db.execSQL(query);
と場合に、あなたのテーブルに定義された外部キーを強制するには、その後、キーワードINTO REPLACE使用
db.execSQL("PRAGMA foreign_keys = ON;"); //enforcing FK
0
データベースに何かを行う前に、次のメソッドを呼び出します。
REPLACE INTO my_table (pk_id, col1) VALUES (5, '123');
これにより、自動的にプライマリキーが識別され、一致が検出されます。見つからない場合は新しい行を挿入して更新します。
2
アプリケーションユーザーがデータベースのこれらの行に追加したカスタムデータを上書きするため、REPLACEまたはINSERT OR REPLACEの制限に注意してください。他のSQLデータベースのUPSERTほど高度ではありません。
前の記事で説明したように、主キーの内容を特定し、この情報を使用して古いデータを更新するか、新しい行を挿入する前に古い行を削除する必要があります。
これが不可能な場合は、挿入を実行する前に必ずmy_tableまたはDROP my_tableを削除して重複がなくなるようにすることができます。これは(良いか悪いか)新しい輸入に欠けているデータがあなたのアプリの中に横たわっていないことを確認します。
関連する問題
- 1. SQliteクエリを使用したAndroid Appウィジェット
- 2. AndroidのSQLite入力の複製
- 3. Android:サポートフラグメンテーションマネージャを使用した場合のフラグメントの複製
- 4. WindowManagerを使用したビューの複製
- 5. session.setAttributeを使用したセッションオブジェクトの複製
- 6. sqliteを使用したデータの復帰
- 7. SQLiteデータベースのデータを使用したダイアログ
- 8. Android app SQLite addButtonClicked IllegalStateException
- 9. SQLiteストアを複製する
- 10. mvvmcrossを使用したAndroid Appのアクティビティインジケータ
- 11. sqliteを使用したデータ操作
- 12. Android App(Qt)にSQLiteをデプロイ
- 13. Magentoでコードを使用した製品の複製
- 14. SQLite UPDATEクエリの行を複製する
- 15. SQliteを使用したXamarin(IOS Android UWP)使用OneToMany
- 16. Xamarin Android C#:SQLiteデータベースのデータを使用してListViewカスタム行にデータを挿入
- 17. 複製データ
- 18. SQLのデータ複製 -
- 19. androidアプリケーション用の複数のsqlite * .dbファイル
- 20. 複数のAndroidアプリで同じsqliteデータベースを使用
- 21. Android SQLite永久データ
- 22. Android SQLiteデータ表示
- 23. フィルタリングされた複製を使用した同期pouchdb
- 24. react componentWillReceivePropsデータ複製
- 25. AndroidとPhonegapを使用したSQLiteデータベースの格納
- 26. SQLiteDatabaseを使用した複数のテーブルからのSQLiteクエリ
- 27. のAndroidのSQLiteクエリはデータ
- 28. PostgreSQLデータベースを使用したRuby on Rails 5プロジェクトの複製
- 29. OCamlを使用したSqlite
- 30. sqliteを使用したスリムログライター