簡體   English   中英

Pl / SQL更新觸發器根據表上的更新操作更新排名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM