【发布时间】:2019-08-28 22:42:18
【问题描述】:
触发目的:
我应该将该用户的一些数字 50 添加到表 money 中,其中表 paym 中的两个列 table1 和 table2 都不为空。
例如:用户'John' 的两列都不为空,并在表money 中向他添加了50。
下表中的示例:
表:paym
ID username table1 Table2
+-------+-------------+-------------+-----------+
| 1 | John | Value | Value |
+-------+-------------+-------------+-----------+
| 2 | Alex | Null | Null |
+-------+-------------+-------------+-----------+
表:money
ID username total_money
+-------+-------------+-------------+
| 1 | John | 50 |
+-------+-------------+-------------+
| 2 | Alex | 0 |
+-------+-------------+-------------+
下面的触发器,只有在我们一次插入所有表格时才能完美运行。但是,如果您只插入username 两个空表并且在插入之后,如果您将值添加到 empty 表 table1 和 table2 ,则此时此触发器不起作用!我们能解决这个问题吗???
即使我们在插入后向表格添加值,触发器也应该工作!
DELIMITER $$
CREATE trigger update_money_after_paym
AFTER INSERT ON paym
FOR EACH ROW
BEGIN
IF (NEW.table1 IS NOT NULL AND NEW.table2 IS NOT NULL) THEN
UPDATE money SET total_money = total_money + 50 WHERE username = NEW.username;
END IF;
END;
$$
DELIMITER;
【问题讨论】:
-
这是一些作业吗,这两个是你的同学? stackoverflow.com/questions/55560450/… , stackoverflow.com/questions/55559015/…
-
@stickybit 不,兄弟这些是我的帐户! :))
标签: mysql sql database-trigger