Dans Oracle, je peux choisir le top 1 message dans une table triée avecSélectionnez top N avec « pour sauter mise à jour verrouillé » dans Oracle
select messageid from(
select
messageid,
RANK() over (order by messageid asc) as msg_rank
from messages
) where msg_rank=1;
Et comme je l'ai découvert dans un previous question je peux sélectionner une ligne exclusivement avec
select * from messages where rownum < 2 for update skip locked;
Cependant, je ne peux pas fusionner ces deux concepts
select messageid from(
select
messageid,
RANK() over (order by messageid asc) as msg_rank
from messages
) where msg_rank=1 for update skip locked;
-- results in error
-- ORA-02014: cannot select FOR UPDATE from view with DISTINCT, GROUP BY, etc.
Comment puis-je choisir e Le top N avec verrouillage readpast?
Je pense que ce blog a quelques réflexions pertinentes: http://markjbobak.wordpress.com/2010/04/06/unintended-consequences/ –