【发布时间】:2019-08-07 17:10:41
【问题描述】:
我正在尝试阻止将Card1 and Card2 更新为refer 表上的用户,该用户的资金少于表total_balance.total_money
是否可以将这样的逻辑与触发器相结合?
DELIMITER $$
CREATE trigger LessMoneyThanRequirePrevent
Before update ON refer
FOR EACH ROW
BEGIN
IF (total_balance.total_money<10 WHERE total_balance.username= NEW.refer.username)
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Not enough money in your account! Insertion canceled';
END IF;
END
$$
DELIMITER;
我认为 WHERE 条件有问题?
表格:参考
ID username Card1 Card2
+-------+-------------+-------------+-----------+
| 1 | John | Value | Value |
+-------+-------------+-------------+-----------+
| 2 | Alex | Null | Null |
+-------+-------------+-------------+-----------+
表格:total_balance
ID username total_money
+-------+-------------+-------------+
| 1 | John | 10.0 |
+-------+-------------+-------------+
| 2 | Alex | 7.0 |
+-------+-------------+-------------+
例如: 用户 John 在 total_balance 上有足够的钱,允许更新 Card1 and Card2 但 Alex 不够 不允许
【问题讨论】: