CREATE TABLE t (
id INTEGER PRIMARY KEY,
val INTEGER,
dt INTEGER NOT NULL DEFAULT (strftime('%s','now'))
)
CREATE TRIGGER tr AFTER UPDATE OF val
ON t
BEGIN
UPDATE t SET dt=strftime('%s','now') WHERE id=NEW.id;
END;
INSERT INTO t (1, 11)
现在当我这样做时
UPDATE t SET val=2 WHERE id=1
它工作正常,但是当我想指定dt时:
UPDATE t SET val=2, dt=140000 WHERE id=1
触发器覆盖我的新 dt。如何让这两个例子都工作?
为什么不BEFORE UPDATE OF val
?触发器会将 dt 更新为当前(处理情况 1(,然后UPDATE
会将 dt 更新为所需的(处理情况 2(。