所以我试图创建一个触发器,当我在characterData表中的钱包或银行上进行更新时,将触发该触发器 .

然后,触发器应将旧数据,新数据和这两者中的差异发送到名为logMoney的表中 .

我无法弄清楚出了什么问题,因为我遇到了语法错误,而且我不知道它出了什么问题 .

这是我的触发器:

DELIMITER $$
$$
CREATE TRIGGER tr_characterData_moneyUpdate
AFTER UPDATE ON characterData
BEGIN
INSERT INTO logMoney
    (
        characterID
        , walletBefore
        , walletAfter
        , walletDiff
        , bankBefore
        , bankAfter
        , bankDiff
    )
    SELECT d.characterID
        , d.walletBefore
        , i.walletAfter
        , d.bankBefore
        , i.bankAfter
    FROM inserted i 
    SET walletDiff = walletAfter - walletBefore
    SET bankDiff = bankAfter - bankBefore
        LEFT JOIN deleted d ON i.characterID = d.characterID
    WHERE CHECKSUM(i.newWallet, i.newBank) <> CHECKSUM(d.oldWallet, d.oldBank);
END$$
DELIMITER ;

希望有人可以帮助我