有点晚了,但到底是什么 - 你还可以把一堆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)
| 归档时间: |
|
| 查看次数: |
3786 次 |
| 最近记录: |