gpt4 book ai didi

mysql - 如何执行实现此条件的触发器?

转载 作者:行者123 更新时间:2023-11-29 16:07:49 24 4
gpt4 key购买 nike

我需要实现此过程的触发器:

我应该向该用户添加一些数字 50 到表 money 中,其中表 paym 中都有列 table1table2 不为空。

例如:用户'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 后运行。如果新插入的记录将 table1table2 列都设置为非 NULL 值,则触发器将运行 UPDATE 查询,该查询将 50 添加到表 money 中的 total_money 列,查找与 中新插入的记录具有相同 username 的记录付款

关于mysql - 如何执行实现此条件的触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55560450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com