1

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

clients:
_id|firstname|lastname|accountnr

accounts:
accountnr|balance

我尝试使用一个插入和一个更新语句创建触发器。插入在帐户表中创建一个新帐户。问题是account表使用autoincrement,所以不知道新创建的accountnr的值。我需要在更新语句中知道该值,以将 people 表的 accountnr 更新为 account 表中的 accountnr。

4

1 回答 1

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;
于 2013-05-01T06:21:13.213 回答