This might be more of a design question, but here goes. I\'m writing an Android app that uses a local SQLite database (with multiple tables) that syncs with a MySQL database eve
A short and sweet answer for you:
last_modified
column that you want this one to behave the same...Lastly, using a trigger like this is the easiest way I know to maintain last_modified
or last_accessed
timestamp.
My trigger (in java form):
private static final String UPDATE_TIME_TRIGGER =
"CREATE TRIGGER update_time_trigger" +
" AFTER UPDATE ON " + TABLE_NAME + " FOR EACH ROW" +
" BEGIN " +
"UPDATE " + TABLE_NAME +
" SET " + TIME + " = current_timestamp" +
" WHERE " + ID + " = old." + ID + ";" +
" END";
Addition
According to the SQLite website you need to create a trigger for each type of action. In other words, you cannot use:
CREATE TRIGGER trigger_name
AFTER UPDATE, INSERT ...
From your last comment you may have figured out the best way to handle an INSERT statement for our purpose:
CREATE TABLE foo (
_id INTEGER PRIMARY KEY,
last_modified TIMESTAMP NOT NULL DEFAULT current_timstamp);
In this table, you do not need to create a timestamp trigger for an INSERT statement, since it is done already. (Fun fact: INTEGER PRIMARY KEY
implicitly adds AUTOINCREMENT NOT NULL
as well as the default incremental value to our _id
column.)