如何将INSERTS复制到一个单独的表中?

时间:2011-06-27 06:14:59

标签: database sqlite triggers duplicate-data

我安装的iPhone应用程序使用SQLite数据库记录对其执行基本INSERTS和DELETES的条目。

但是我希望保留对此表所做的INSERTS的永久日志,因此当INSERT发生时,我希望将其写入另一个表以便创建日志。

我无法访问应用程序源代码以修改所做的SQL语句,但我确实可以访问SQLite数据库。

我可以使用触发器执行此操作吗?如果是这样,有人可以提供一个简短的例子。

2 个答案:

答案 0 :(得分:3)

从未使用过SQLite,但这是google的第一个链接:http://www.sqlite.org/lang_createtrigger.html

你可以写下这样的东西:

CREATE TRIGGER duplicate_insert INSERT ON myTable
    BEGIN
        INSERT INTO myDuplicateTable
        VALUES(new.Id, new.Name, new.LastModified)
    END;

HTH

答案 1 :(得分:1)

您通过Google访问的SQLite参考部分和搜索字词'sqlite trigger'(即SQLite Query Language: CREATE TRIGGER)是否难以理解?

CREATE TRIGGER ins_maintable AFTER INSERT ON MainTable
    FOR EACH ROW BEGIN INSERT INTO LoggingTable VALUES(NEW.Column1, ...); END;

未经测试的代码......如果要相信语法图,则需要两个分号;或者,至少需要END之前的那个。