【发布时间】:2014-11-22 02:51:29
【问题描述】:
我是 SQL 和 PostgreSQl 的新手,对于以下问题,我需要一个绝望的答案:
我有以下两个表,其中包含以下信息:
MATCH_STATISTICS
比赛
使用这两个表,我需要创建一个 TRIGGER,将 MATCH_STATISTICS 中的玩家添加到 MATCH,其中 MAX 值来自“mvp_score”。
换句话说,我想将 MATCH_STATISTICS 中最有价值的球员添加到 MATCH 但有一个条件: * 如果有两名球员的 mvp_score 相同,则存储的最有价值球员将是出场时间达到 MAX 分钟的球员。
我能够使用最大值执行第一个 TRIGGER,但是当我有两个重复值时,代码会添加最后修改的值。
有人知道怎么做吗? TRIGGER 应该在 INSERT、UPDATE 或 DELETE 之后执行
非常感谢,抱歉我的英语不好......
【问题讨论】:
-
为什么要为此使用触发器?这很容易通过查询来计算。而且,除非您的表有数十万行或更多行,否则您可能甚至不会注意到性能。
-
因为我需要使用 INSERTS 和 UPDATES 用新信息更新表。我不想手动更新 MATCH 表。换句话说,在我在 MATCH_STATISTICS 中添加新行之后,我想要一个 TRIGGER 来控制最有价值的玩家。
-
不,您不需要更新匹配表。创建一个返回该信息的 视图。那么你就不用担心触发器了。
-
我完全同意你的观点,但我需要用 TRIGGER 来解决这个问题。是否有更好的解决方案并不重要,就我而言,我需要一个触发器。很抱歉,事情就是这样。
-
好吧...那我该如何查看或查询呢?因为我不知道该怎么做...
标签: sql function postgresql triggers