我想在插入操作上创建一个触发器。创建新的客户端行时,应触发此触发器。触发器应在accounts表中创建一个新行,然后将键值插回到触发触发器的行中。
clients:
_id|firstname|lastname|accountnr
accounts:
accountnr|balance
我尝试使用一个insert和一个update语句创建一个触发器。插入会在帐户表中创建一个新帐户。问题是帐户表使用自动增量,所以我不知道新创建的帐户的价值。我需要在update语句中知道该值,以将people表的accountnr更新到account表中的accountnr。
答案 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;