[英]Pl/ SQL update trigger to update the ranking upon an update operation on a table
給定table_player
Players. Score
A. 34
B. 45
C. 34
D. 20
我想使用一個更新觸發器,當一個人的得分改變時,該觸發器會自動更新玩家的排名,我也希望該排名列作為表中的新列保持不變。
這實際上不是觸發器的好用,因為1)您必須從要插入的表中進行選擇,並且2)每次插入新行時,都可能必須更新表中的所有行。 除非您創建一個非常復雜的方案來避免它們,否則這兩個都可能導致數據錯誤變異。
但是,視圖可以有效地完成同一件事。 唯一的區別是視圖不存儲數據,而是在您每次訪問表時僅進行排名計算。 如果您的數據庫支持分析功能,則將非常簡單:
CREATE VIEW table_player_rank AS
SELECT player, score, rank() OVER (ORDER BY score) AS player_rank
FROM table_player;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.