在旧的基于旧版的系统中,我们会对用户广告资源进行更新。库存包含许多不同的商品,用户每个商品ID会有一行,每行都是他们拥有的商品数量。
现在,在这个相当古老而又庞大的代码中的某个地方存在一个问题,即用户最终可能会得到减去数量的项目。这绝不应该发生。
与其从顶部处理问题并浏览与库存表交互的每段代码,我们可能会尝试创建一些报告来帮助我们找到问题。
在我开始实施我认为可能解决这个问题的事情之前,我想我会把它放到社区那里,以了解他们如何接近它。
也许可以从创建更新MySQL规则开始,该规则将活动插入到另一个表中以便进行更仔细的检查等。具有创造性。
答案 0 :(得分:1)
如果添加时间戳字段,那么您将知道上次执行操作的时间 - 从中可以找到mysql日志中的te更新条目,并可能与应用程序日志协调。
或者你可以在桌子上设置一个触发器......
CREATE TRIGGER no_negatives_in_yourtable
BEFORE UPDATE ON yourtable
FOR EACH ROW
BEGIN
IF (NEW.value<0) THEN
/* log it (NB will be rolled back if subsequent statement enabled */
INSERT INTO badthings (....) VALUES (...);
/* this forces the operation to fail */
DROP TABLE `less than zero value in yourtable`;
END IF;
END