我需要实现此过程的触发器:
我应该向该用户添加一些数字50到表money
中,其中表paym
中的列table1
和table2
都不为空。
例如:用户'John'
的两列都不为空,并且在表50
中向他添加了money
。
下表中的示例:
表:paym
ID username table1 Table2
+-------+-------------+-------------+-----------+
| 1 | John | Value | Value |
+-------+-------------+-------------+-----------+
| 2 | Alex | Null | Null |
+-------+-------------+-------------+-----------+
表格:money
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 <> '')
答案 0 :(得分:0)
这是为此目的的触发器:
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
查询,向列{{1}添加50表total_money
中的}与money
中新插入的记录具有相同的username
的记录。