创建更新特定列的触发器

时间:2014-07-08 18:15:28

标签: android sqlite android-sqlite triggers

我已经创建了一个触发器来更新任何更改的列

这不是真正的表,只是一个例子

CREATE TABLE tablename (
    _id INTEGER NOT NULL,
    title TEXT,
    type TEXT,
    value TEXT,
    updated_on INTEGER
)

CREATE TRIGGER updated_on
    AFTER UPDATE ON tablename BEGIN
    UPDATE tablename SET updated_on=strftime('%s', datetime('now', 'localtime'), 'utc')
          WHERE _id=NEW._ID;
    END;

如果只更新了特定列,我需要触发器来避免更新。 在具体示例中,我需要仅在titletype更新时调用触发器,但如果仅value已更新,则不会调用触发器。

我试过

CREATE TRIGGER updated_on
    AFTER UPDATE OF 'title','type' ON tablename BEGIN
            UPDATE tablename SET updated_on=strftime('%s', datetime('now', 'localtime'),'utc')
                WHERE _id=NEW._ID;
    END;

但触发器根本没有更新。

1 个答案:

答案 0 :(得分:0)

我在问题中创建的触发器是正确的实现。

错误出现在一个真实的项目中,因为我首先错误拼写了真正的列名。