これは設計上の問題の可能性がありますが、ここでは説明します。私は、MySQLデータベースと同期するローカルのSQLiteデータベース(複数のテーブルを持つ)を使用するAndroidアプリケーションを作成しています。私は自分のデータベースの変更された行を更新したいだけです。これを行うには、その行が追加/更新/置き換えられた時刻を示す列「last_modified
」を各行に追加します。SQLiteトリガーを使用して "LastModified"フィールドを更新する
私はデータベース操作が初めてですが、これを実行するにはトリガーが最適であるかもしれません。私は、トリガー、SQLite、およびAndroidに関連するいくつかの質問があります。
私はこのリンクを読んでいます:on update current_timestamp with SQLite基本的に私は正しいアプローチを使用していると言います。私の質問は次のとおりです:
db.execSQL("CREATE TRIGGER...")
の声明はどこに貼り付けますか?テーブルを作成する前または後で?- データベース内のすべてのテーブルに対して同じトリガを使用できますか?すなわち、トリガーは、どのテーブルおよび行が更新/挿入/置換/等されているかを自動的に検出することができる。その行の "
last_modified
"フィールドを設定するように通知するか、各テーブルに対して個別のトリガーを作成する必要がありますか? - 私はデータベース操作が新しくなっているので、上記の動作を実行するサンプルAndroid Trigger文を提供できますか、またはリソースをサンプルに提供できますか?
トリガーが悪い考えである場合は、より良い選択肢がありますか?
ありがとうございます。
素晴らしいですね!ありがとうございました。したがって、あなたの例では、 "TIME"は "last_modified"フィールドで、 "ID"は各行のprimary_idフィールドです。 – jmhend
もう1つ質問があります。 UPDATEとINSERTの両方で同じトリガーサポートをトリガーする方法はありますか? – jmhend
または、INSERTのためのトリガーを持つ代わりに、 "last_modified"のDEFAULT値をCURRENT_TIMESTAMPにするだけですか? – jmhend