如何在触发器中从表A到表B获取ID?

时间:2014-04-24 16:46:56

标签: sqlite triggers

我有两张桌子,A& B:

TABLE A
id   |   name

TABLE B
id    |  name | fk_idA

我想在表B中创建触发器AFTER INSERT,它使用表A中的最新id更新fk_idA。

一个例子:

 TABLE A
id   |   name
 1   |   Andrew
 2   |   David

 TABLE B
id    |  name  | fk_idA
 1    | Photo1 |   2

1 个答案:

答案 0 :(得分:0)

如果ID列是自动递增的,则最新的是最大的,即MAX返回的那个:

CREATE TRIGGER DefaultAIsLatest
AFTER INSERT ON TableB
FOR EACH ROW
WHEN NEW.fk_idA IS NULL
BEGIN
    UPDATE TableB
    SET fk_idA = (SELECT MAX(id)
                  FROM TableA)
    WHERE id = NEW.id;
END;