表A 用户身份 名称
表B 用户身份 时间戳
我需要创建一个触发器,以便在A.Name更改时在表B中插入一行。到目前为止,我有:
创建触发器名称更新 名称更新后 上一个 每行 开始 插入B( 用户身份, 时间戳记 ) 值( xxxxxxx, DateTime('now') ); END;
XXXXXXX应该是刚刚更改的A.UserID。
答案 0 :(得分:1)
您可以使用前缀 old.
来引用之前/之后的值(根据相关性,即,对于插入仅是新的,对于更新仅是旧的或新的,而对于删除仅是旧的)。分别 new.
。
尝试:-
CREATE TRIGGER NameUpdate AFTER UPDATE OF Name ON A FOR EACH ROW
BEGIN
INSERT INTO B( UserID, Timestamp ) VALUES ( new.UserID, DateTime('now') );
END
;
或(由于用户ID 列未更改,):-
CREATE TRIGGER NameUpdate AFTER UPDATE OF Name ON A FOR EACH ROW
BEGIN
INSERT INTO B( UserID, Timestamp ) VALUES ( old.UserID, DateTime('now') );
END
;