我需要实现此过程的触发器:
我应该向该用户添加一些数字 50 到表 money
中,其中表 paym
中都有列 table1
和 table2
不为空。
例如:用户'John'
的两列都不为空,并且在表money
中向他添加了50
。
下表示例:
表:paym
ID username table1 Table2
+-------+-------------+-------------+-----------+
| 1 | John | Value | Value |
+-------+-------------+-------------+-----------+
| 2 | Alex | Null | Null |
+-------+-------------+-------------+-----------+
表格:金钱
ID username total_money
+-------+-------------+-------------+
| 1 | John | 50 |
+-------+-------------+-------------+
| 2 | Alex | 0 |
+-------+-------------+-------------+
查询:(不确定正确与否)
UPDATE
money
SET
money.total_money = money.total_money + 50
INNER JOIN
paym
ON
money.username = paym.username
WHERE
(paym.Table1 IS NOT NULL OR paym.Table1 <> '')
AND
(paym.Table2 IS NOT NULL OR paym.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;
代码将在每次插入表 paym
后运行。如果新插入的记录将 table1
和 table2
列都设置为非 NULL
值,则触发器将运行 UPDATE
查询,该查询将 50 添加到表 money
中的 total_money
列,查找与 中新插入的记录具有相同
。username
的记录付款
关于mysql - 如何执行实现此条件的触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55560450/