Test data: begin; drop table x; create table x(id integer not null primary key, value integer default random() * 1000); insert into x(id) select * from generate_series(1, 100); commit; Execution: rollback; begin; select id from (select id from x order by value limit 10) as rows where pg_try_advisory_xact_lock(id);