7

您好,我开始开发一个 Android 应用程序,该应用程序将使用一个 SQLite DB 来保存多个表。我想知道的是上次更新特定表的时间,因为某些数据在一周内不需要更新,而其他表需要每隔几个小时更新一次。试图节省带宽并创建更快响应更迅速的应用程序。不确定是否有这个命令(似乎找不到任何东西),或者我是否应该在每个表中添加一个包含当前时间和日期的字段,并使用 System.currentTimeMillis() 来计算它已经持续了多长时间。

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

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

4

3 回答 3

10

有点晚了,但到底是什么——你也可以在你的表上放一堆TRIGGERs 并维护一个修改表,如下所示。最近的修改以类型和日期+时间记录在modifications表中。TRIGGER可以通过一个简单的方法轻松完成创建这样的 s,并为您在您的文件中创建的每个表调用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;
于 2012-05-11T10:45:47.613 回答
3

我知道没有 SQL 函数可以做到这一点。

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

于 2012-05-10T15:41:48.780 回答
-2

我相信操作可以通过以下步骤来实现

第 1 步:您可以使用sqlite 触发机制

第 2 步:从第 1 步调用sqlite命令将更新的记录写入文本文件(检查将结果写入文件:http ://www.sqlite.org/sqlite.html )

第 3步:在C#PHP中执行文件系统观察程序操作

第 4 步:通过短信网关将数据从 php 发送到 android

另一个疯狂的科学怪人算法,我正在为我的应用程序工作;-)

欢迎任何比这更可行和更简单的方法......

于 2013-07-03T14:20:47.990 回答