これは設計上の問題の方が多いかもしれませんが、ここで説明します。私は、MySQLデータベースと時々同期するローカルSQLiteデータベース(複数のテーブルを含む)を使用するAndroidアプリを作成しています。データベース内の変更された行のみを更新したい。これを行うために、各行に列 " last_modified
"を追加して、その行が追加/更新/置換された時刻などを示します。
私はデータベース操作に不慣れですが、トリガーがこれを行うための最良の方法である可能性があることを確認しました。トリガー、SQLite、Androidに関していくつか質問があります。
私はこのリンクを読みました:SQLiteでcurrent_timestampを更新するときそれは基本的に私が正しいアプローチを使用していることを示しています。私の質問は次のとおりです。
- 私はどこに
db.execSQL("CREATE TRIGGER...")
声明を置くべきですか?テーブルを作成する前または後? - データベース内のすべてのテーブルに同じトリガーを使用できますか?つまり、トリガーは、どのテーブルと行が更新/挿入/置換されているかなどを自動的に検出できますか。その行の「」フィールドを設定するように通知し
last_modified
ますか、それともテーブルごとに個別のトリガーを作成する必要がありますか? - 私はデータベース操作にまったく慣れていないので、上記の動作を実行するAndroidトリガーステートメントの例を提供できますか、それとも例にリソースを提供できますか?
または、トリガーが悪い考えである場合、より良い代替手段はありますか?
ありがとうございました。