插入触发器插入值

时间:2013-04-30 08:12:32

标签: triggers sqlite

我想在插入操作上创建一个触发器。创建新的客户端行时,应触发此触发器。触发器应在accounts表中创建一个新行,然后将键值插回到触发触发器的行中。

clients:
_id|firstname|lastname|accountnr

accounts:
accountnr|balance

我尝试使用一个insert和一个update语句创建一个触发器。插入会在帐户表中创建一个新帐户。问题是帐户表使用自动增量,所以我不知道新创建的帐户的价值。我需要在update语句中知道该值,以将people表的accountnr更新到account表中的accountnr。

1 个答案:

答案 0 :(得分:2)

last_insert_rowid()的用途是什么:

CREATE TRIGGER new_account_for_new_client
AFTER INSERT ON clients
FOR EACH ROW
WHEN NEW.accountnr IS NULL
BEGIN
    INSERT INTO accounts(balance)
    VALUES(0);

    UPDATE clients
    SET accountnr = last_insert_rowid()
    WHERE _id = NEW._id;
END;