桌面上次更新时的Android检查

Jam*_*mes 6 sql database sqlite android

大家好,我开始开发一个Android应用程序,它将使用一个可以容纳多个表的SQLite数据库.我想知道的是,上次更新特定表时,因为某些数据不需要更新,例如一周,其他表需要每隔几小时更新一次.尝试节省带宽并创建更快速响应的应用程序.不确定是否有一个命令(似乎找不到任何东西)或者我是否应该在每个表中添加一个具有当前时间和日期的字段,并使用System.currentTimeMillis()来计算它已经存在多长时间.

我知道这是在下面问的,但从未得到回答,任何帮助都会很棒:)

检查上次更新SQLite数据库/表的时间(PHP)

Jen*_*ens 9

有点晚了,但到底是什么 - 你还可以把一堆TRIGGERs放在你的桌子上并维护一个修改表,如下图所示.使用modifications表中的类型和日期+时间记录最近的修改.创建TRIGGER类似的东西可以通过一种简单的方法轻松完成,并调用在你的创建的每个表SQLiteOpenHelper

CREATE TABLE table1 (
    _id INTEGER PRIMARY KEY AUTOINCREMENT,
    text1 TEXT,
    text2 TEXT
);

CREATE TABLE table2 (
    _id INTEGER PRIMARY KEY AUTOINCREMENT,
    text1 TEXT,
    int1 INTEGER
);

CREATE TABLE modifications (
    table_name TEXT NOT NULL PRIMARY KEY ON CONFLICT REPLACE,
    action TEXT NOT NULL,
    changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TRIGGER IF NOT EXISTS table1_ondelete AFTER DELETE ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','DELETE');
END;

CREATE TRIGGER IF NOT EXISTS table2_ondelete AFTER DELETE ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','DELETE');
END;

CREATE TRIGGER IF NOT EXISTS table1_onupdate AFTER UPDATE ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','UPDATE');
END;

CREATE TRIGGER IF NOT EXISTS table2_onupdate AFTER UPDATE ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','UPDATE');
END;

CREATE TRIGGER IF NOT EXISTS table1_oninsert AFTER INSERT ON table1
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table1','INSERT');
END;

CREATE TRIGGER IF NOT EXISTS table2_oninsert AFTER INSERT ON table2
BEGIN
    INSERT INTO modifications (table_name, action) VALUES ('table2','INSERT');
END;
Run Code Online (Sandbox Code Playgroud)


Bar*_*rak 3

据我所知,没有 SQL 函数可以做到这一点。

您可以向每个记录添加一个带有时间戳的字段,然后执行查询以返回表中的最新时间戳。