【问题标题】:insert trigger insert value back插入触发器插入值返回
【发布时间】:2013-04-24 02:15:44
【问题描述】:

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

clients:
_id|firstname|lastname|accountnr

accounts:
accountnr|balance

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

【问题讨论】:

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

标签: triggers sqlite


【解决方案1】:

这就是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-01-21
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2016-03-30
    • 2015-11-06
    • 2015-04-21
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多