我有一个包含两个表的数据库。他们是,
顺序(用户ID,名称,索引,总计)
userid | total
sandun | 2500
sandun | 4800
akmal | 1200
paynow(userid,totalpayment)
userid | totalpayment
sandun | 14000
akmal | 22500
我需要在订单表中插入对应的用户 ID 时更新 paynow 表。所以我为此做了一个触发器。就在这里,
CREATE TRIGGER totals
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
WHEN(NEW.userid IS NOT NULL)
UPDATE paynow
SET totalpayment = totalpayment + NEW.total
WHERE userid = NEW.userid
END;
但它给出了这个错误。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHEN(NEW.userid IS NOT NULL) UPDATE paynow SET totalpayment = totalpayment + N' at line 5
最佳答案
MySQL
触发器没有 when
子句。您可以改用 if
语句:
CREATE TRIGGER totals
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
IF NEW.userid IS NOT NULL THEN
UPDATE paynow
SET totalpayment = totalpayment + NEW.total
WHERE userid = NEW.userid;
END IF;
END;
关于mysql - 创建触发器以使用另一个表的更改来更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621596/