這可能是一個更多的設計問題,但這裏有。我正在編寫一個Android應用程序,它使用本地SQLite數據庫(具有多個表),每隔一段時間就與MySQL數據庫同步。我只想更新數據庫中的修改行。爲此,我在每行添加一列「last_modified
」,表示該行被添加/更新/替換/等的時間。使用SQLite觸發器來更新「LastModified」字段
我是新來的數據庫操作,但我看到,觸發器可能是最好的方式來做到這一點。我有幾個有關觸發器,SQLite和Android的問題。
我讀過這個鏈接:on update current_timestamp with SQLite它基本上說我正在使用正確的方法。我的問題是:
- 我應該在哪裏放
db.execSQL("CREATE TRIGGER...")
聲明?在創建表之前還是之後? - 我可以爲我的數據庫中的每個表使用相同的觸發器嗎?即觸發器是否可以自動檢測哪個表和行正被更新/插入/替換/等等。並通知設置該行的「
last_modified
」字段,還是必須爲每個表創建單獨的觸發器? - 由於我對數據庫操作相當陌生,您能否提供一個示例Android觸發器語句來執行上述行爲,或者爲示例提供資源?
或者如果觸發器是一個壞主意,有沒有更好的選擇?
謝謝。
看起來不錯!謝謝。那麼在你的例子中,「TIME」是你的「last_modified」字段,「ID」就是每行的primary_id字段? – jmhend
還有一個問題。有沒有辦法在UPDATEing和INSERTing上觸發相同的觸發器? – jmhend
或者不是有一個用於INSERT的觸發器,只是將「last_modified」的DEFAULT值設爲CURRENT_TIMESTAMP,呃? – jmhend