所以我试图创建一个触发器,当我在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 ;
希望有人可以帮助我