Mysql 在另一个 table 中插入记录后触发更新可用余额

Mysql trigger to update the available balance after inserting records in another table

我在 mysql 数据库中有两个 table,一个是账户主 table,另一个是账户交易 table。在 insert/update/delete 交易 table 上,我必须更新帐户主 table 中的可用余额和最后交易日期(帐户主 table 包含超过 1 个帐户) .有可能用触发器吗? 我尝试使用以下触发器。但是触发器没有被执行,出现语法错误(MSG 1064 LINE 30 MY SQL DB ERROR)。 如果可以通过触发器处理,请帮助解决。

    DELIMITER $$
   CREATE TRIGGER wlt_bal_upd_insert AFTER INSERT ON wallet_txns
FOR EACH ROW
BEGIN
    UPDATE wallet_accounts
   SET wlt_bal_available =  select sum(IF(wlt_txn_type = 'Expense', -wlt_txn_amount, wlt_txn_amount))from wallet_txns where wlt_name = new.wlt_name,wlt_last_txn_date = select MAX(wlt_txn_date)from wallet_txns where wlt_name = NEW.wlt_name
   WHERE wlt_holder_id = NEW.wlt_holder_id
   and wlt_name = new.wlt_name;
    END $$
DELIMITER ;

我只是忘了放括号()。它现在工作。这是修改后的代码。

DELIMITER $$
   CREATE TRIGGER wlt_bal_upd_insert AFTER INSERT ON wallet_txns
FOR EACH ROW
BEGIN
    UPDATE wallet_accounts
   SET wlt_bal_available = (select sum(IF(wlt_txn_type = 'Expense', -wlt_txn_amount, wlt_txn_amount))from wallet_txns where wlt_name = new.wlt_name),wlt_last_txn_date = (select MAX(wlt_txn_date)from wallet_txns where wlt_name = NEW.wlt_name)
   WHERE wlt_holder_id = NEW.wlt_holder_id
   and wlt_name = new.wlt_name;
    END $$
DELIMITER ;