我想在SQLite中编写一个触发器。
假设我有2张表A和B
计算机
int id
int foo1
键盘
int id
int computerId (foreign key)
int foo2
我想编写一个触发器,在计算机 foo2更新时更新键盘 foo1。
CREATE TRIGGER update_trigger
AFTER UPDATE OF foo1 ON Computer FOR EACH ROW
BEGIN
UPDATE Keyboard
SET foo2 = 'someValue'
WHERE computerId = ???? ;
END;
如何获取更新计算机ID for where命令?有人可以帮我完成命令吗?
答案 0 :(得分:3)
SQLITE具有NEW和OLD引用,您可以使用它们从更新中获取当前或以前的值。鉴于您的要求可能是可用的。
CREATE TRIGGER update_trigger
AFTER UPDATE OF foo1 ON Computer FOR EACH ROW
BEGIN
UPDATE Keyboard
SET foo2 = 'someValue'
WHERE computerId = OLD.id ;
END;