我正在尝试根据另一个表中的值设置一个新值。这是一个 BEFORE UPDATE 触发器。我需要根据表“webTransactions”中百分比列的值在“webs”表中设置一个新的金额。如果百分比 = 30.00,则新金额必须从任意值更改为 0.00。到目前为止我尝试过但给我的错误:
if new.type=9 and new.referenceId=0 then set new.amount=0.00 where (SELECT * FROM webs s JOIN webTransactions r ON r.webId = s.id WHERE s.percent = 30.00);
任何人都可以帮助运行此触发器吗?
谢谢
最佳答案
你可以尝试这样的事情
UPDATE websTransactions
SET amount= CASE
WHEN type=9 AND referenceId=0 THEN 0.00
ELSE amount
END
WHERE key IN
(SELECT key FROM webs s JOIN webTransactions r ON r.webId = s.id
WHERE s.percent = 30.00)
将 key
替换为 websTransactions 的主键
关于mysql - 根据另一个表值触发器设置新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843160/