我有一个非规范化数据库,其中我将其他表的总点数放入驱动程序表中。我想在更新点所在的表时更新表驱动程序的总点数。
这样的事情:
int x = 1
long y = 1
x.equals(y)
但我无法更新触发器内部。我也试过一个程序,但我真的不知道该怎么做。
我该如何解决这个问题?
答案 0 :(得分:0)
如果' numpoints'可以在'点'您可以将表格添加到' drivers'通过触发器进行每次更新。但是,如果您要更改' driverID'同样。请尝试以下方法。
这里'新'关键字为您提供了您要更改的新值以及“旧”' keyword为您提供表中存在的值。
CREATE TRIGGER sanciones_trigger BEFORE UPDATE ON points
FOR EACH ROW
UPDATE drivers
SET total_points= drivers.total_points + (NEW.numpoints - OLD.numpoints)
WHERE pID = NEW.driverID;