FOR UPDATE SKIP LOCKED and get locked row/avoid updating other row(s)

From: Wiwwo Staff <wiwwo(at)wiwwo(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: FOR UPDATE SKIP LOCKED and get locked row/avoid updating other row(s)
Date: 2024-02-13 11:17:57
Message-ID: CAD1W9HUrmzSRYLeBSHf3gL7G5pSW9AA5BMdYQq-rg4xK8tHe1w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi!
I am implementing a queue using PostgreSQL.
I am of course using "FOR UPDATE SKIP LOCKED".

Is there any way I can tell PostgreSQL to only "operate" on the locked row,
and/or a way to reference it?

Some explanations of what I mean:

- I have a table with N rows
- I lock row X with a PG Function, in transaction 1
- I do something in my code, using transaction 2
- I update the status of row X with a PG Function, in transaction 1

In last step, I update the row X status, passing my function the ID of this
row X.
But, nothing stops me from updating row Y in the queue table, for whatever
reason.

My question again: any way to force a "Just update the row X you locked
before, and nothing else/more?"

Thanks!

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Garcia Badaracco 2024-02-13 13:48:08 Re: Compressing large column by moving it to a unique table
Previous Message Daniel Gustafsson 2024-02-13 08:43:52 Re: MAT. VIEW security problems and PG 10-11 versions?